鱼C论坛

 找回密码
 立即注册
查看: 2350|回复: 4

[已解决]带你学C第七课课后作业

[复制链接]
发表于 2023-3-3 11:42:08 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 moonbeams 于 2023-3-3 11:44 编辑

源代码
  1. #include <stdio.h>
  2. #include <math.h>

  3. int main()
  4. {
  5.         int i;
  6.         double result;

  7.         printf("请输入一个整数:");
  8.         scanf("%d", &i);

  9.         result = pow(i, 5);

  10.         printf("%d的五次方是:%.2f\n", i, result);

  11.         return 0;
  12. }
复制代码

我的代码
  1. #include <stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5.     int i;
  6.     double j = pow(i, 5);

  7.     printf("请输入一个整数:");
  8.     scanf("%d",&i);
  9.     printf("%d的五次方是:%.2f\n",i,j);
  10.     return 0;
  11. }
复制代码

在声明变量类型时同时定义,结果为什么会不对?求助!!
最佳答案
2023-3-3 11:51:15
你的代码中有一个逻辑错误,就是你在定义变量j时,使用了未初始化的变量i作为pow函数的参数。这样会导致j的值不正确,因为i的值是不确定的。

正确的做法是先声明变量i和j,然后输入i的值,再计算j的值,最后输出结果。例如:


  1. #include <stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5.     int i; //声明变量i
  6.     double j; //声明变量j

  7.     printf("请输入一个整数:");
  8.     scanf("%d",&i); //输入i的值
  9.     j = pow(i, 5); //计算j的值

  10.     printf("%d的五次方是:%.2f\n",i,j); //输出结果
  11.     return 0;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-3-3 11:51:15 | 显示全部楼层    本楼为最佳答案   
你的代码中有一个逻辑错误,就是你在定义变量j时,使用了未初始化的变量i作为pow函数的参数。这样会导致j的值不正确,因为i的值是不确定的。

正确的做法是先声明变量i和j,然后输入i的值,再计算j的值,最后输出结果。例如:


  1. #include <stdio.h>
  2. #include<math.h>
  3. int main()
  4. {
  5.     int i; //声明变量i
  6.     double j; //声明变量j

  7.     printf("请输入一个整数:");
  8.     scanf("%d",&i); //输入i的值
  9.     j = pow(i, 5); //计算j的值

  10.     printf("%d的五次方是:%.2f\n",i,j); //输出结果
  11.     return 0;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-3 11:56:44 | 显示全部楼层
isdkz 发表于 2023-3-3 11:51
你的代码中有一个逻辑错误,就是你在定义变量j时,使用了未初始化的变量i作为pow函数的参数。这样会导致j的 ...

嗷嗷,我大概明白了,那也就是说我可以在初始化i值后再进行j的声明和定义,这样就ok,例如下面
  1. #include <stdio.h>
  2. #include <math.h>
  3. int main()
  4. {
  5.     int i;

  6.     printf("请输入一个整数:");
  7.     scanf("%d",&i);

  8.     double j = pow(i, 5);
  9.    
  10.     printf("%d的五次方是:%.2f\n",i,j);
  11.     return 0;
  12. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-3 11:58:07 | 显示全部楼层
moonbeams 发表于 2023-3-3 11:56
嗷嗷,我大概明白了,那也就是说我可以在初始化i值后再进行j的声明和定义,这样就ok,例如下面

对的,你也可以声明 i 的同时给 i 初始化
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-3 12:00:14 | 显示全部楼层
isdkz 发表于 2023-3-3 11:58
对的,你也可以声明 i 的同时给 i 初始化

明白了,这里主要是pow函数运算里参数需要额定,感谢感谢!!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-23 04:30

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表