宇轩宇轩! 发表于 2020-12-16 08:11:38

指针问题 能编译 但是乱码 哪位大佬帮我看看哪里出现问题啦

{:10_266:}{:10_266:}include<stdio.h>

int main()
{
    int sorce,ave,max,min,*p;
    int sum=0,i;
    printf("please input ten integer:\n");
    for(i=0; i<10; i++)
      scanf("%d",&sorce);
    p=&sorce;
    if(*p>max)
    {
      max=*p;
    }
    else if(*p<min)
    {
      min=*p;
      sum+=*p;
      ave=sum/10;
    }
    printf("The max=%d,min=%d,ave=%d\n",max,min,ave);
}

题目是:试编写一段程序,定义一个大小为10的整型类型的数组,由键盘输入其元素值后,采用指针的方式计算该数组各元素的平均值,最大值和最小值并进行输出。

风过无痕1989 发表于 2020-12-16 09:54:44

#include<stdio.h>

int main()
{
        int sorce, ave, max, min;
        int sum = 0, i;
        printf("please input ten integer:\n");
        for (i = 0; i<10; i++)
                scanf("%d", &sorce);
        int *p = sorce;
        max = *p;
        min = *p;
        for (i = 0; i < 10; i++)
        {
                if (*(p + i) > max)
                {
                        max = *(p + i);
                        sum += *(p + i);
                }
                else if (*(p + i) < min)
                {
                        min = *(p + i);
                        sum += *(p + i);
                }
                else
                {
                        sum += *(p + i);
                }
        }
        ave = sum / 10;
        printf("The max=%d,min=%d,ave=%d\n", max, min, ave);
}

宇轩宇轩! 发表于 2020-12-16 10:17:32

求最大值和求最小值时 为什么每次都要sum+=*(p+i)呢 大佬

风过无痕1989 发表于 2020-12-16 12:59:08

宇轩宇轩! 发表于 2020-12-16 10:17
求最大值和求最小值时 为什么每次都要sum+=*(p+i)呢 大佬

不是求最大值和求最小值时,而是你要求平均值,就不能漏掉每一个数据

宇轩宇轩! 发表于 2020-12-16 15:23:45

所以说在求完每一步的时候 加一个要求的那个平均值吗?

风过无痕1989 发表于 2020-12-16 15:44:45

宇轩宇轩! 发表于 2020-12-16 15:23
所以说在求完每一步的时候 加一个要求的那个平均值吗?

程序中有三种情况,满足一种时,就需要对这种情况下,加上这个数据,不然,求的和就不对了

宇轩宇轩! 发表于 2020-12-16 16:12:28

懂了 谢谢
页: [1]
查看完整版本: 指针问题 能编译 但是乱码 哪位大佬帮我看看哪里出现问题啦