光着屁股的犀牛 发表于 2020-3-20 16:12:05

新手求教!为啥输出的是乱码

书上的题目,要求求一个班同学的平均成绩,在成绩录入那一块我自己改成了for循环输入
我用debug调试了一下循环的时候看见他输入进去了,但是就是不知道为啥出来的结果是乱码{:5_104:}
#include <stdio.h>
#include <math.h>
void main ()
{
        double average (int n,double array []);
        double put ;
        int x,n;
        while (1)
        {
                printf ("Please input the number of students in your class\n");
                scanf ("%d",&n);
                printf ("Please input the grade of you class :\n");
                for (x = 0;x<n;x++)
                {
                        scanf ("%lf",&put);
                }
                printf ("you class students average score is %lf\n",average(n,put));
        }

}

double average (int n,double array [])
{
        int x;
        double sum = 0;
        double aver;
        for (x = 0;x<n;x++)
        {
                sum = sum + array;
        }
        aver = sum/n;
        return (aver);
}

http://p2.so.qhmsg.com/t0254f11f54fa612ff6.jpg

一个账号 发表于 2020-3-20 16:13:36

还在用 VC6.0 ?建议使用 Dev-c++

qiuyouzhi 发表于 2020-3-20 16:14:28

输出格式是long float,你给它一个double类型的数据?

光着屁股的犀牛 发表于 2020-3-20 16:16:42

一个账号 发表于 2020-3-20 16:13
还在用 VC6.0 ?建议使用 Dev-c++

感谢建议

梦想灬远帆 发表于 2020-3-20 16:23:42

可能是你的put 数组没有初始化:double put = {0}

梦想灬远帆 发表于 2020-3-20 16:24:44

Dev C++已经停止维护了,而且Dev 也是有问题的,建议还是使用VS Code 或者VS

光着屁股的犀牛 发表于 2020-3-20 16:33:37

梦想灬远帆 发表于 2020-3-20 16:23
可能是你的put 数组没有初始化:double put = {0}

我刚刚按你的试了一下,结果为0{:10_284:}

梦想灬远帆 发表于 2020-3-20 16:55:28

光着屁股的犀牛 发表于 2020-3-20 16:33
我刚刚按你的试了一下,结果为0

#include <stdio.h>
#include <math.h>

int main ()
{
      double average (int n,double array []);
                double put = {0};
      int x,n;
      while (1)
      {
                printf ("Please input the number of students in your class\n");
                scanf ("%d",&n);
                printf ("Please input the grade of you class :\n");
                for (x = 0;x<n;x++)
                {
                        scanf ("%lf",&put);
                }
                printf ("you class students average score is %lf\n",average(n,put));
      }

}

double average (int n, double *p)
{
      int x;
      double sum = 0;
      double aver;
      for (x = 0;x<n;x++)
      {
                sum = sum + p;
      }
      aver = sum/n;
      return (aver);
}


scanf里面put[]应该是put
你后面传递数组的时候传递的不对,应该传第一个的地址

光着屁股的犀牛 发表于 2020-3-20 17:11:09

梦想灬远帆 发表于 2020-3-20 16:55
scanf里面put[]应该是put
你后面传递数组的时候传递的不对,应该传第一个的地址

感谢,感谢,万分感谢,自己看了快半个小时了都没看出来{:10_266:}
页: [1]
查看完整版本: 新手求教!为啥输出的是乱码