带你学C第七课课后作业
本帖最后由 moonbeams 于 2023-3-3 11:44 编辑源代码
#include <stdio.h>
#include <math.h>
int main()
{
int i;
double result;
printf("请输入一个整数:");
scanf("%d", &i);
result = pow(i, 5);
printf("%d的五次方是:%.2f\n", i, result);
return 0;
}
我的代码
#include <stdio.h>
#include<math.h>
int main()
{
int i;
double j = pow(i, 5);
printf("请输入一个整数:");
scanf("%d",&i);
printf("%d的五次方是:%.2f\n",i,j);
return 0;
}
在声明变量类型时同时定义,结果为什么会不对?求助!! 你的代码中有一个逻辑错误,就是你在定义变量j时,使用了未初始化的变量i作为pow函数的参数。这样会导致j的值不正确,因为i的值是不确定的。
正确的做法是先声明变量i和j,然后输入i的值,再计算j的值,最后输出结果。例如:
#include <stdio.h>
#include<math.h>
int main()
{
int i; //声明变量i
double j; //声明变量j
printf("请输入一个整数:");
scanf("%d",&i); //输入i的值
j = pow(i, 5); //计算j的值
printf("%d的五次方是:%.2f\n",i,j); //输出结果
return 0;
} isdkz 发表于 2023-3-3 11:51
你的代码中有一个逻辑错误,就是你在定义变量j时,使用了未初始化的变量i作为pow函数的参数。这样会导致j的 ...
嗷嗷,我大概明白了,那也就是说我可以在初始化i值后再进行j的声明和定义,这样就ok,例如下面#include <stdio.h>
#include <math.h>
int main()
{
int i;
printf("请输入一个整数:");
scanf("%d",&i);
double j = pow(i, 5);
printf("%d的五次方是:%.2f\n",i,j);
return 0;
} moonbeams 发表于 2023-3-3 11:56
嗷嗷,我大概明白了,那也就是说我可以在初始化i值后再进行j的声明和定义,这样就ok,例如下面
对的,你也可以声明 i 的同时给 i 初始化 isdkz 发表于 2023-3-3 11:58
对的,你也可以声明 i 的同时给 i 初始化
明白了,这里主要是pow函数运算里参数需要额定,感谢感谢!!
页:
[1]