C语言:输入10个学生的数学成绩,计算出平均分,利用指针统计出最高分,并打印输出平均分和最高分

如题所述

#include <stdio.h>

void main()
{
int a[10],i,sum =0,max=0;//如果是有小数,改成float定义
float average;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
if(max<a[i])
{
max = a[i];
}
sum+=a[i];
}
average = (sum+0.0)/10;
printf("平均分average = %.2f\n最高分max = %d",average,max);//保留两位有效数字
}追问

别拿百度上的答案来忽悠我,你没看到我是要用指针来统计的吗?

追答

ok!我的错。但请不要侮辱我的智商!哥辛辛苦苦着急几分钟输代码写得。只是没想到,指针来做。下给用指针 射你一脸的代码!慢慢享用
#include

void main()
{
int a[10],i,sum =0,max=0,*p;//如果是有小数,改成float定义
float average;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
sum+=a[i];
}
p = a;//a数组传给指针p首地址
for(;p-a<10;p++)
{
if(max<*p)
{
max=*p;
}
}
average = (sum+0.0)/10;
printf("平均分average = %.2f\n最高分max = %d",average,max);//保留两位有效数字
}

追问

对不起,我知道我语气有点不好,可是谢谢你的答案,这个我也有另一种答案了,我再问你一道题行不。 编写一个fun()函数,输入一个不小于0的数n,求n!,如果输入的数小于0则函数返回0,否则返回n!的值。(注:0!=1),利用函数调用求出10!

追答

呵。语气温和一些还是真的很好。
如果求n的阶乘是在long范围内的很简单,只要输入的n不大
#include
void main()
{
long fun(int n);
int n;
long y;
printf("input an integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%10.0f\n",n,y);
}
long fun(int n)
{
long f;
if(n<0)
{
printf("n<0,error!");
}
else
if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-01-07
楼上的回答,回复,看的很强大,哎。。伤不起
相似回答