moonbeams 发表于 2023-3-3 11:42:08

带你学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;
}
在声明变量类型时同时定义,结果为什么会不对?求助!!

isdkz 发表于 2023-3-3 11:51:15

你的代码中有一个逻辑错误,就是你在定义变量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;
}

moonbeams 发表于 2023-3-3 11:56:44

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;
}

isdkz 发表于 2023-3-3 11:58:07

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

对的,你也可以声明 i 的同时给 i 初始化

moonbeams 发表于 2023-3-3 12:00:14

isdkz 发表于 2023-3-3 11:58
对的,你也可以声明 i 的同时给 i 初始化

明白了,这里主要是pow函数运算里参数需要额定,感谢感谢!!
页: [1]
查看完整版本: 带你学C第七课课后作业