# include "stdio.h"
# include "math.h"
void main()
{
float r, p;
int n;
printf("按顺序输入r, n(中间以空格隔开):\n");
scanf("%f %d", &r, &n);
p = pow((1 + r), n);
printf("%f\n", p);
}
/* 如果是 "scanf("%f %d", &r, &n);"结果是:
-------------------------------------
按顺序输入r, n(中间以空格隔开):
0.09 10
2.367364
Press any key to continue
-------------------------------------
-----------------------------------
按顺序输入r, n(中间以空格隔开):
0.09 10
2.367364
Press any key to continue
----------------------------------
如果是 “scanf("%f%% %d", &r, &n);”
---------------------------------
按顺序输入r, n(中间以空格隔开):结果是
9% 10
10000000000.000000
Press any key to continue
---------------------------------
*/
为什么这两种方式输入“9% 10”和输入“0.09 10”得到的结果不一样啊???
追答哦,你是想输入百分之九啊?
这不行,你这个输入方法只能让计算机读到数值9而%只是它的一个输入分隔符!
计算机C语言输入数据时,好象不支持百分数的方式!
翻了翻资料,C确实不支持百分数这种输入格式的。计算机不是纯数学,它是人工制造、规定出来的法则,计算机只是按相应的法则去做事。
那这几种不同的方式应该怎样输入呢?
不好意思啊,没有提出问题就提交了;
我的问题是 “为什么这几种方法得到的结果不一样?”
因为你的输入格式还是不对!
如果是 “scanf("%f%% %d", &r, &n);”//注意::::::::::这里是俩个%%
---------------------------------
按顺序输入r, n(中间以空格隔开):结果是
9% 10
10000000000.000000
Press any key to continue
---------------------------------
*/
你的输入应该是9%% 10才对
我输进去得到的结果是“0.000000”,scanf函数“%%”貌似就是表示可以读入“%”