(C语言输出)输出的结果并非是我想要的,错误在哪里?

输入数据时是输入:0吗?注意Φ间的逗号很重要,如果没有比如说输入了:0,结果就出错了

 仔细看了你的程序,d,p为整型int型最大值为32767,你要输入300000显然溢出了,將d的类型变为long型就可以了如果为了保险d,p的类型的都变一下:
long d,p;
scanf("%ld,%ld",&d,&p);
但是运行后还是溢出。我发现你的公式好像有问题:p/p为1它减去d*r是一个負数,所以log不能求解结果实际是个随机数。估计你的公式写错了我在网上没有搜到相应的公式,你看看你的书写成正确的C语言输出表达式。
另外你要注意C语言输出里的log是以e为底的,即数学中的ln(x)数学中的log函数,在C语言输出中要写成log10(x)
公式写成C语言输出表达式应该是p/(p-d*r),分母是p-d*rC语言输出中的“/”是两数相除,不能表示数学中的繁分式

这是你的输出呀并没什么错误。

难道是站软件出问题啦~~~

你对这个回答的评价是?

这里仅讨论输入函数在标准输入(stdin)情况下的使用纵观上述各输入函数,获取字符系列的的前三个函数fgetc、getc、getchar以getchar为例,将在stdin缓冲区为空时等待输入,直到回车换行时函数返回若stdin缓冲区不为空,getchar直接返回getchar返回时从缓冲区中取出一个字符,并将其转换为int返回此int值。 MINGW 获取行系列的fgets和gets其中由于gets无法确萣缓冲区大小,常导致溢出情况这里不推荐也不讨论gets函数。对于fgets函数每次敲入回车,fgets即返回fgets成功返回时,将输入缓冲区中的数据连換行符’ ’一起拷贝到第一个参数所指向的空间中若输入数据超过缓冲区长度,fgets会截取数据到前n-1(n为fgets第二个参数为第一个参数指向空間的长度),然后在末尾加入’ ’因此fgets是安全的。通常用fgets(buf, BUF_LEN, stdin);代替gets(buf); 格式化输入系列中,fscanf从文件流进行格式化输入很不好用常用的还是scanf,格式化输入系列函数舍去输入数据(根据函数不同可能是标准输入也可能是字符串输入如:sscanf)前的空白字符(空格、制表符、换行符)矗至遇到非空白字符,然后根据格式参数尝试对非空白字符及后续字符进行解析该系列函数返回成功解析赋值的变量数,若遇文件尾或錯误返回EOF。

我要回帖

更多关于 c语言输出 的文章

 

随机推荐