输入一组同学的分数,以负值作为结束符,输出其中的最大值和平均值 c语言 输

快点等不及了

#include<stdio.h>
void main()
{
int num,i,j;
float a[100],b[100],sum=0,ave;
printf("请输入一组同学的成绩并以负值结束:\n");
for(;a[i]>=0;i++)
{
scanf("%f",a[i]);
sum=sum+a[i];
b[j++]=a[i];
num++;
}
for(j=0;j<num;j++)
{
for(i=j+1;i<num-1;i++)
{
int tem;
if(b[j]<b[i])
{
tem=b[j];
b[j]=b[i];
b[i]=tem;
}
}
}
ave=sum/num;
printf("平均值是:%f",&ave);
printf("最大值是:%f",b[0]);
}
//差不多就是这样吧!你自己看看C语言书调试一下,上了两年都快忘光了,仅作参考,见笑啦!
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-03-18
因为不知道具体人数,所以没法用数组,现用结构体类型,希望你能够看懂:
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
struct student
{
double score;
struct student *next;
};
main()
{
struct student *head,*tail,*p;
double num,sum,t,a,c;
head=tail=NULL;
printf("请输入成绩并以负数结束:\n");
scanf("%lf",&num);
while(num>0.0)
{p=(struct student *)malloc(sizeof(struct student));
p->score=num;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%lf",&num);
}
tail->next=NULL;
p=head;
if(p!=NULL)
a=p->score;
while(p->next!=NULL)
{
p=p->next;
c=a;
sum=sum+c;
c=p->score;
if(a>p->score)
{ t=p->score;
p->score=a;
a=t;}
a=p->score;
}
sum=sum+a;
printf("其和为:%.2lf\n",sum);
printf("最大值为:%.2lf",a);
getch();
}

输入一组同学的分数,以负值作为结束符,输出其中的最大值和平均值...
void main(){ int num,i,j;float a[100],b[100],sum=0,ave;printf("请输入一组同学的成绩并以负值结束:\\n");for(;a[i]>=0;i++){ scanf("%f",a[i]);sum=sum+a[i];b[j++]=a[i];num++;} for(j=0;j<num;j++){ for(i=j+1;i<num-1;i++){ int tem;if(b[j...

输入若干个整数,输出最大数值和最小数值,当输入负值结束 c语言
include <stdio.h>int main(){ int n, max, min; scanf("%d",&max); min=max; while(scanf("%d",&n)==1 && n>=0) if(max<n)max=n; else if(min>n)min=n; printf("%d %d\\n",max, min); return 0;} ...

从键盘输入若干个(不超过10个)学生的百分制成绩,当输入成绩为负值...
C语言判断的话可以使用while循环,当输入的值为负值的时候结束循环。排序的话可以直接用C语言的库函数qsort。include<stdio.h> intmain(){ intarray[20],length,i;inttmp,sum=0,average;intA=0,B=0,C=0,D=0,cnt=0;for(i=0;;++i){ scanf("%d",&tmp);if(tmp<0){ break;} array[i]...

输入若干个整数,输出最大数值和最小数值,当输入负值结束
cout<<"最小值为:"<<a[0]<<"\\n";cout<<"最大值为:"<<a[coun-1]<<"\\n";return 0;}

c语言,从键盘上一次输入一批数据(以输入0作为结束标志),求其最大值...
求最大很简单把,用一个变量 ,赋值0,然后和读取的每一个 比较 ,小于就互换,统计正数 负数,更简单啊,判断 大于 0,然后正数+1,小于0,负数+1,这里 0好像不是正数汗,~~~

c语言中用 switch 怎么写然后输入一个分数根据分数段输出 ABCDE。
然后对结果进行switch 事先编好程序,要求分别用if语句和switch语句实现。运行程序,并检查结果是否正确。② 再运行一次程序,输入分数为负值(如-70),这显然是输入时出错,不应给出等级。修改程序,使之能正确处理任何数据:当输入数据大于100或小于0时,通知用户“输入数据错”,程序结束。90-100:A...

c语言 从键盘输入一行字符,分别统计其中数字字符,字母字符和其他字符...
intmain(){ inta,b,c,ch;a=b=c=0;\/\/计数器初始化为0.while((ch=getchar())!='\\n')\/\/循环读取字符,到换行结束。{ if(ch>='0' && ch<='9')\/\/数字 a++;else if((ch>='a' && ch<='z')||(ch>='A' && ch<='Z'))\/\/字母 b++;else\/\/其它 c++;} printf("%d%d%d...

C语言在键盘上输入三个学生的信息(包含学号,姓名,三门课的成绩)并在...
输出出错则返回负值。printf()函数的调用格式为:printf("<格式化字符串>",<参量表>);其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。以上内容参考:百度百科-printf()...

用指针实现输入3个整数,找出最大的数输出
char*argv[]){ float a,b,c,*pa=&a,*pb=&b,*pc=&c,max;scanf("%f,%f,%f",pa,pb,pc);if(*pa>*pb){ max=*pa;printf("if1%f\\n",max);} else { max=*pb;printf("else\\n");} if(*pc>max){ max=*pc;printf("if2\\n");} printf("max=%f\\n",max);return 0;} ...

c语言getchar的用法
char c;c = getchar();这样就很有可能出现问题。因为getchar函数除了返回终端输入的字符外,在遇到Ctrl+D(Linux下)即文件结束符EOF时,getchar ()的返回EOF,这个EOF在函数库里一般定义为-1。因此,在这种情况下,getchar函数返回一个负值,把一个负值赋给一个char型的变量是不 正确的。为了能够让...

相似回答