c语言 , 运行结果为内存出错 ,编译器为dev-c++

来源:百度知道 编辑:UC知道 时间:2024/04/30 01:00:18
/* 评分程序,找出最高、最低分,求平均分 */
void find(int *p,int j);
int max=0,min=0;
float aver=0;
main ()
{
int num[10],*num_p=num,i,n;

for (i=0;i<10;i++) { printf("请输入%d号评分:",i+1);scanf("%d",num_p++); }
num_p=num;
find(num_p,n);
printf("最高分:%d 最低分:%d 平均得分:%.2f",max,min,aver);
getch();
}

void find(int *p,int j)
{
int h,sum;
for(h=0;h<j;h++)
{
sum+=*(p+h);
if ( max<*(p+h) ) max=*(p+h);
else
if (min > *(p+h) ) min=*(p+h);
}
aver=sum/j;
}

修改如下:

/* 评分程序,找出最高、最低分,求平均分 */
#include <stdio.h> /*加上所用到的头文件*/
#include <conio.h>

void find(int *p,int j);
int max=0,min=0;
float aver=0;
main ()
{
int num[10],*num_p=num,i,n = 10; /*必须要赋值10*/

for (i=0;i<10;i++) { printf("请输入%d号评分:",i+1);scanf("%d",num_p++); }
num_p=num;
find(num_p,n);
printf("最高分:%d 最低分:%d 平均得分:%.2f",max,min,aver);
getch();
}

void find(int *p,int j)
{
int h,sum = 0; /*赋初值*/
max = min = *p; /*必须赋值为数组的第一个值*/
for(h=0;h<j;h++)
{
sum+=*(p+h);
if ( max<*(p+h) ) max=*(p+h);
/*else 不要*/
if (min > *(p+h) ) min=*(p+h);
}
aver=sum/j;
}