barriers / 阅读 / 详情

c语言有十个评委,打的分数在1到10,去掉最高分去掉最低分,求平均值。要求:用while语句。求助

2023-06-06 07:52:30
TAG: while
共1条回复
北有云溪

#include <stdio.h>

int main()

{

int i=0,max=0,min=0;

float a[10],aver,sum=0;

while(i<10)

{

scanf("%f",&a[i]);

sum+=a[i];

if(a[i]>a[max])

{

max=i;

}

if(a[i]<a[min])

{

min=i;

}

i++;

}

sum=sum-a[max]-a[min];

aver=sum/8;

printf("%f ",aver);

return 0;

}

相关推荐

aver在python中表示什么

在Python里的表示为函数定义。aver是average的缩写,函数定义时,当三种参数都出现,其定义顺序为必备参数、args、默认参数,使用aver接收返回值。
2023-06-05 09:26:511

aver=0是什么意思

平均值为0。在C语言中,aver是average的缩写,即为“求平均值”,即平均值为0。C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。
2023-06-05 09:26:581

c语言 aver=ave(n,m)是什么意识

先来看看aver=ave(n,m)这句话里的内容是什么:aver是一个变量。ave()是一个函数,括号里的m和n是函数的两个变量(也叫参数)。aver=ave(n,m)这句话的意识就是:调用ave 函数,参数分别是n和m,最后的函数值赋值给aver。 它的形式就跟我们学过的函数如y=sinx是一个道理:x是自变量,函数值是y。在本例中,函数ave的具体作用,还要有一个函数定义部分。
2023-06-05 09:27:071

c语言中aver什么意思

aver是average的缩写,即为“求平均值”。包含在数学头文件<math.h>中。
2023-06-05 09:27:174

c语言 aver()什么意思?

C语言中,aver是average的缩写,即为“求平均值”。包含在数学头文件中。关系运算符||和&&都是二元的逻辑运算符,即包含二个操作数,如A||B,A&&B。逻辑表达式最终的值都是布尔型,即只有0(代表假)和1(代表真)。而所有非零数值的逻辑值都为真,即1。零的逻辑值为假,即0。A||B和A&&B的逻辑结果如下:ABA||BA&&B0000011010101111回答完毕。关于这些基础知识建议楼主买本C语言编程数看看,每本C语言入门教程均会详细讲解楼主想要知道的这些基础知识。祝楼主早日早日进入高手境界。这里就好办了。这里的aver()知识用户自己定义的一个函数的函数名。不过从函数名来看,这个函数的功能是实现对数组a[]的所有元素球平均值。回答完毕!
2023-06-05 09:27:275

C语言编程中为什么“aver=average(score[10])”是错误的,而是“aver=average(score,10)”

average是一个函数吗?你要看这个函数接受的形参类型是什么
2023-06-05 09:27:453

vb中aver是什么意思?

请把你的相关代码贴出来以便大家帮你分析
2023-06-05 09:27:543

aver是啥子电脑牌子

是ACER吧?ACER是宏碁品牌,台湾的一个电脑厂商。
2023-06-05 09:28:031

英语词义辨析

分类: 教育/科学 >> 外语学习 问题描述: aver/affirm/assert~~~~谢谢啊 最好有句子啊 解析: aver KK: [] DJ: []vt.[+(that)] 1. 宣告为确实;断言;坚称 He averred that he was innocent. 他坚称自己是无辜的。 2. 【律】证明...属实;作为事实提出 affirm KK: [] DJ: [] vt. 1. 断言,申明,坚称[+that] He affirmed his loyalty to his country. 他声言忠于自己的国家。 2. 证实,确认[(+as)] She was affirmed as a candidate. 她被确认为候选人。 3. 【律】(不经宣誓而)证明 vi. 1. 断言 2. 【律】(不经宣誓而)提供正式证词 assert assert KK: [] DJ: [] vt. 1. 断言,声称[+that][O2] She asserted her innocence. 她宣称她是清白的。 He asserted that he was not guilty. 他声明他无罪。 2. 维护,坚持;主张拥有 The boss asserted his authority by punishing his employees. 老板靠惩罚雇员来维护自己的权威。 3. 显示;确立
2023-06-05 09:28:101

在c语言中 aver = &ave和*aver = ave有什么区别吗

*aver = ave估计会报错
2023-06-05 09:28:204

c语言6.输入十个整数,计算出平均值(aver),找出最大者(max)和最小者(min)并将三者输出。

1、sum要初始化赋值为02、max=a[0],min=a[0];这两句要放在第一个for循环之后。
2023-06-05 09:28:424

av=aver(sco)是什么意思

av是前面定义的平均值吧aver()应该是个求平均值的函数,里面传输的形参是sco,应该是个数组名字!
2023-06-05 09:28:581

Aver笔记本开机出现白屏

白屏,就是你笔记本信号没有到显示屏,又叫无成像。还原不能解决问题,可能显卡有故障,或者显卡到屏幕之间的电路屏线有问题
2023-06-05 09:29:041

c语言中float cj[NUM],aver;是什么意思?

从这句话来看,NUM应该是宏定义,定义了一个数量float cj[NUM]是定义了一个名称为cj的数组,元素类型为浮点数。元素个数为NUM所定义的值除此外,同时还定义了一个名为aver的浮点型变量。
2023-06-05 09:29:111

从键盘输入20个学生C语言的成绩(整数),求他们的平均分aver(保留两位小数),并求出超过平均分的学生人

这个不用C语言吧?只需要用到公式。。。平均分应该不难。。超出人数的话,就要用到COUNT的公式。。。
2023-06-05 09:29:214

C语言,编写一个程序,从键盘输入5个数,算出总和及平均值!急!!!

#includeintmain(){inta,b,sum;floataver;scanf("%d%d",&a,&b);//输入的时候用空格隔开两个数sum=a+b;aver=sum/2;printf("总和:%d,平均数:%f",sum,aver);getchar();}
2023-06-05 09:29:481

C语言中 val 是什么意思

val 和i一样是一个变量名字 但类型为 long,
2023-06-05 09:29:594

c语言 求平均成绩最低成绩 和最高成绩

#include <stdio.h>float Max,Min;float average(float a[],int n){ int i; float aver,sum=0; Max=Min=a[0]; for (i=0;i<n;i++) { if (a[i]>Max) Max=a[i]; else if (a[i]<Min) Min=a[i]; sum+=a[i]; } aver=sum/n; return(aver);}main() /*return有返回值,所以main前面的void是不能用 */ { int i; float a[5],aver; for (i=0;i<5;i++) scanf("%f",&a[i]); aver=average(a,5); printf("max=%3.2f,min=%3.2f,aver=%3.2f ",Max,Min,aver); /*你定义实型,在这里却用了整型的输出*/}
2023-06-05 09:30:133

用c语言设计一个程序统计一个班的学生成绩

改好了,问题不大,我都写在注释里了:#include<stdio.h>#include<math.h>#defineN35#defineCOURSE4structstudent{charnum[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用intnum;*/floatscore[4];floatsum;floataver;}stu[N];voidmain(){voidInput(structstudentstu[]);voidcount(structstudentstu[]);voidsort(structstudentstu[]);voidfind(structstudentstu[]);sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/Input(stu);count(stu);find(stu);/*为什么你的程序里没有执行着几个函数咧?*/}voidInput(structstudentstu[]){inti,j;printf("EnterNo.andscoreas:score1score2score3score4 ");for(i=0;i<N;i++){scanf("%s",stu[i].num);/*用%s输入字符串*/for(j=0;j<COURSE;j++){scanf("%f",&stu[i].score[j]);}}}voidcount(structstudentstu[]){floatsum,aver;inti,j;for(i=0;i<N;i++){sum=0;for(j=0;j<5;j++)sum+=stu[i].score[j];aver=sum/4;stu[i].sum=sum;stu[i].aver=aver;}}voidsort(structstudentstu[]){inti,j,k;structstudenttemp;for(i=0;i<N;i++){k=i;for(j=i+1;j<N;j++)if(stu[k].sum<stu[j].sum)k=j;if(k!=i){temp=stu[i];stu[i]=stu[k];stu[k]=temp;}}printf("numberscore1score2score3score4sumaverage ");for(i=0;i<N;i++)printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f ",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);/*输出学号也用%s*/}voidfind(structstudentstu[]){intflag=0;inti,j;sort(stu)/*;//stu[];)*/printf("thestudentofonescore>=90and前五名: ");/*这两句调换一下位置,不然输出不太好*/for(i=0;i<5;i++){intsum=0;for(j=0;j<4;j++)if(stu[i].score[j]>=90)sum++;if(sum){flag=1;printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f ",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);}}if(flag==0)printf("notexist! ");/*这个判断放在循环体之外,不然会输出好多"notexist!"*/}另外,注意:1.个班的学生成绩最多35人。你的咋是固定35人捏?2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的学号和各科成绩,平均分和总分你似乎没有看清题意吧?是要用户输入课程号耶。这些你自己应该知道怎么做吧?
2023-06-05 09:30:203

学生成绩管理系统的c语言程序

软件设计的一个好习惯就是先把你要做的东西分功能然后分模块。细分下来,各功能模块分别实现其作用就好了。所以你先要做的是明白你做的东西是干什么的,然后再想代码。代码只是很小的一部分。
2023-06-05 09:30:435

c语言,数组程序设计

完全正确 以后记住 不要把大括号省略#include<stdio.h>int main(void){ int i,x,n; int a[10]; printf("输入数组元素的个数:"); scanf("%d",&n); printf("输入数组%d个元素:",n); for(i=0;i<n;i++) { scanf("%d",&a[i]); } printf("输入x:"); scanf("%d",&x); for(i=0;i<n;i++) { if(a[i]!=x) { continue; } if(i>n) { printf("没有找到与%d相同的元素! ",x); } else { printf("和%d相同的数组元素是a[%d]=%d ",x,i,a[i]); } } return 0;}
2023-06-05 09:31:023

请帮我看下这里有句不明白

写成sum=0是对的。你的程序里写的是sum=array[10],这已经越界了。a[0]在下一个函数中是不可用的。
2023-06-05 09:31:301

用键盘接收5个学生成绩,求平均分

用键盘接收5个学生成绩,求平均分用求平均分的公式就可以了。
2023-06-05 09:31:395

从键盘上输入若干学生的成绩(输入负分结束),输出成绩数目、平均成绩、最低分和最高分。

#include <stdio.h>int main(){float a[1000];float max=0.0,min=0.0;float sum = 0,aver;int i = 0,count=0;for(;i<1000;i++){scanf("%d",&a[i]);if(a[i]<0) break;else{sum+=a[i];if(a[i]>max) max = a[i];if(a[i]<min) min = a[i];count++;}}aver=sum/count;printf("成绩数目:%d,平均成绩:%g,最高分:%g,最低分:%g ",count,aver,max,min)return 0;}
2023-06-05 09:32:111

c编程问题,给答案和解释

fun(a); 是在调用函数,函数是下面写的那个。作用是通过for循环把数组a[]里面的数全部取出来并做乘积即4.5*2*4,得到的值返回出来并赋值给ave这个变量。之后printf把ave这个变量打印出来。%7.2f是占位符,.2表示最多到小数点后两位,7代表输出占7个字符,不足7位以空格代替
2023-06-05 09:32:181

C语言 从键盘输入班级号及相应班级的总人数,相应学号的分数.输出相应学号的分数

#include //输入的学生学号及各门课的分数请在Input()函数实现;int Input(long num[], int score[][3]){int n,r;printf("请输入学生的学号和三门课的成绩: ");for (n=0; nsum[i]){NUM=num[i]; for (k=0; k<3; ++k) SCORE[k]=score[i][k]; SUM=sum[i]; AVER=aver[i];num[i]=num[j]; for (k=0; k<3; ++k) score[i][k]=score[j][k]; sum[i]=sum[j]; aver[i]=aver[j];num[j]=NUM; for (k=0; k<3; ++k) score[j][k]=SCORE[k]; sum[j]=SUM; aver[j]=AVER;}}}//打印学生成绩表及每门课的总分和平均分请在Print()函数实现。void Print(long num[],int score[][3],float sum1[], float aver1[],float sum2[],float aver2[],int n){int i,j;printf("Pos Number Grad1 Grad2 Grad3 Sum1 Aver1 ");for (i=0; i
2023-06-05 09:32:271

C语言编程题,三个学生,两门课程,要求输入他们的学号,姓名和两门成绩。最后输出其中平均分最高的学生

/* * ===================================================================================== * * Filename: 1.c * * Description: * * Version: 1.0 * Created: 01/12/2012 04:41:47 PM * Revision: none * Compiler: gcc * * Author: zjhxmjl (), zjhxmjl@gmail.com * MY_SITE: http://www.92linux.tk * * ===================================================================================== */#include <stdio.h>struct student{ int num[10]; char name[10]; float sco[2]; float aver; float sum;};int main(){ struct student stu[3]; int i,j; float max,sum;//,aver; /* 错误3,aver未使用 */ for(i=0;i<3;i++) { scanf("%d%s",stu[i].num,stu[i].name); /* 错误1 */ sum=0; for(j=0;j<2;j++) scanf("%f",&stu[i].sco[j]); sum=sum+stu[i].sco[j]; stu[i].aver=sum/2; } max=stu[0].aver; for(i=0;i<3;i++) if(stu[i].aver>max) max=stu[i].aver; printf("%d%s",*stu[i].num,stu[i].name); /* 错误2 */ printf("%f",stu[i].sum); return 0;}
2023-06-05 09:32:375

求解一道C语言题目,使用数组和指针统计成绩 给定班级各学生各科的考试成绩,要求统计出各位同学的学期平均

使用指针变量实现统计学生成绩的方法如下,如有不完全符合要求之处,请同学对程序稍加思考后修改。 #include <stdio.h> void main() {void average(float *p,int n); void search(float (*p)[4],int n); float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};//假设题目有3名同学,每名同学有4门课 average(*score,12); //求12个分数的总平均分 。 search(score,2); //求序号为2的学生的成绩 } void average(float *p,int n) {float *p_end; float sum=0,aver; p_end=p+n-1; for(;p<=p_end;p++) sum=sum+(*p); aver=sum/n; printf("average=%5.2f ",aver); } void search(float (*p)[4],int n)// p是指向具有4个元素的一维数组的指针 {int i; printf("the score of No. %d are: ",n); for(i=0;i<4;i++) printf("%6.1f",*(*(p+n)+i)); }
2023-06-05 09:33:161

C语言用二元数组hw[2][10],输入10个人的身高和体重(小数保留一位),求身高和体重的平均,最大,最小

#include<stdio.h>double aver(double *arra, int n){ int i; double sum = 0, aver = 0; for(i = 0; i < n; i++) { sum+= arra[i]; } aver = sum / n; return aver;}double max(double *arra, int n){ int i; double max = 0; for(i = 0; i < n; i++) { if(arra[i] > max) { max = arra[i]; } } return max;}double min(double *arra, int n){ int i; double min = 65535; for(i = 0; i < n; i++) { if(arra[i] < min) { min = arra[i]; } } return min;}void main(){ double hw[2][10] = {{167,168,169,170,171,172,173,174,175,176},{58,59,60,61,62,63,64,65,66,67}}; double h[10],w[10]; int i; for(i = 0; i < 10; i ++) { h[i] = hw[0][i]; w[i] = hw[1][i]; } printf("他们的平均身高为:%.1f ", aver(h,10)); printf("他们的平均体重为:%.1f ", aver(w,10)); printf("他们的最大身高为:%.1f ", max(h,10)); printf("他们的最大体重为:%.1f ", max(w,10)); printf("他们的最小身高为:%.1f ", min(h,10)); printf("他们的最小体重为:%.1f ", min(w,10));}
2023-06-05 09:33:241

#include

两个程序是一样的
2023-06-05 09:33:323

学生成绩管理系统 C语言 用的是dev c++

学生成绩管理系统 帮修改调试
2023-06-05 09:33:411

c语言计算一个组中5个人的平均身高

我用的是VC6.0,如果你用的是TC的话,可以试试能否执行,如果不能可以试试去掉第一行。#include<stdio.h>void main(){ double height[5],aver,sum=0; int i; printf("请输入五个人的身高: ");/*输入时按enter、tab、空格都可以。*/ for(i=0;i<5;i++) scanf("%lf",&height[i]);/*这个循环用于输入身高,height[i]表示第i个人的身高*/ for(i=0;i<5;i++) sum=sum+height[i];/*这个循环用于累加五个人的身高,并存放于sum中*/ aver=sum/5;/*求出平均身高*/ printf("这五个人的平均身高:%g。 ",aver);/*%g和%f差不多,不过它不会输出多余的0,你也可以改成%f。同时%g还可以替代%e。*/}下面是把上面的for循环用一个来代替,减少代码长度:#include<stdio.h>void main(){ double height[5],aver=0; int i; printf("请输入五个人的身高: "); for(i=0;i<5;i++) { scanf("%lf",&height[i]); aver=height[i]/5+aver; } printf("这五个人的平均身高:%g。 ",aver);}数组height[5]用来存放五个人的身高,利用一个for循环输入五个人的身高,同时将每个身高除以5,然后加起来就是五个人的平均身高。由于身高不一定是整数,故设成double型的。这个题也可以用其他循环结构来做,比如:#include<stdio.h>void main(){ double height,sum=0; int i=1; while(i<=5) { printf("请输入第%d个人的身高: ",i); scanf("%lf",&height); sum=sum+height; i++; } printf("这五个人的平均身高:%g。 ",sum/5);}
2023-06-05 09:33:541

刚刚接触c语言,老师叫我们用while语句计算输入的5个数的平均值,用int i=1,aver=0

int i=1,sum=0;int aver;int x[5]={0};scanf(,&x);while(i<=5){ sum=sum+x[i-1];//x是输入的数}aver=sum/5;printf("aver=%d",aver);
2023-06-05 09:34:172

用数组表示一个学生5门课成绩

#include<stdio.h> void main() { int a[5],sum=0; float ave; for(int i=0;i<5;i++) { scanf("%d",&a[i]); sum=sum+a[i]; } printf("总成绩%d ",sum); ave=(float)sum/5; printf("平均成绩%2.2f ",ave); }
2023-06-05 09:34:244

有一个数组,内放 10个学生成绩,用C语言写一个函数,求出平均分、 最高分、最低分。

编译的预处理命令没有,应该写上#include<stdio.h>,还有改为int main() 末尾加上return 0;就可以运行了,运行检验程序没有问题这是修改之后的结果#include<stdio.h>float max=0, min=0;float average(float array[],int n);int main(){float ave,score[10]; int i;for(i=0;i<10;i++)scanf("%f",&score[i]);ave = average(score,10);printf("max=%6.2f min=%6.2f ",max,min);printf("average=%6.2f ",ave);return 0;}float average(float array[],int n){int i; float aver,sum=array[0];max=min=array[0];for(i=1;i<n;i++){if (array[i] > max) max = array[i];if (array[i] < min) min = array[i];sum = sum + array[i];}aver = sum/n;return aver;}
2023-06-05 09:34:402

c语言 aver()什么意思?

我估计你是从程序里看到的吧,这应该是一个自定义的函数名,是average(平均数)缩写方便阅读程序关系|| 表示在符号左右2边都必须是真结果才为真 如:2>1||3>1结果为1,左右一个不为真,结果为0关系&&表式在符号左右2边只要有一个为真,结果就为真初学C要注意一下在||中如果前面式子为假,后面式子则不会运算 如x=3 2>3||x=4则X的值还是3&&如果前一个为真,则后一个也不会进行计算
2023-06-05 09:35:041

计算公式要求:SUM、AVER、MAX、COUNT、MIN用中文代表什么?

Sum 是求和Max是指最大值Min是指最小值cout的中文解释是计数AVER不知道,不好意思啊
2023-06-05 09:35:111

aver+=score[i]是什么意思

aver+=score[i]就是 aver = aver + score[i]aver/=m是 aver = aver / m /
2023-06-05 09:35:202

编程定义一个函数ave,功能是求3个数的平均分并调用

# include <stdio.h># include <stdlib.h>int main(){ void input(int *t); int ave(int *t); void list (int *t,int aver); int a[80],average,*p;p=a;input(p);average=ave(p);list(p,average);system ("PAUSE");return 0;}void input(int *t){int i;printf("依次输入成绩,当输入值为0时结束: ");for(i=0;i<80;i++){scanf("%d",t+i);if(*(t+i)==0) break;}}int ave(int *t){int i,aver,sum=0;for(i=0;*(t+i)!=0;i++)sum=sum+*(t+i);aver=sum/i;return aver;}void list (int *t,int aver){int i;for(i=0;*(t+i)!=0;i++){printf("%6d",*(t+i));if((i+1)%5==0) printf(" ");}printf(" 平均成绩为:%d ",aver);}
2023-06-05 09:35:282

C语言中float amount,aver,total;这一语句是什么意思?

这句话的意思是:定义三个浮点型变量,变量名分别为:amount , aver , total
2023-06-05 09:35:421

输入10个数,放在一维数组a中,求平均数 c语言

#include <stdio.h>int main(void){ int a[10]; int i; int sum = 0; int avg = 0; printf("please enter ten value:"); for(i=0;i <10; i++) { scanf("%d ",&a[i]); printf("%d ",a[i]); sum = sum + a[i]; } avg = sum /10; // float avg = sum/10.0 printf("the avg is : %d", avg); return 0; }
2023-06-05 09:35:492

vb编写一求平均值的函数aver(x,y)。 主调程序调用函数过程求平均值并输出。

这还不简单么?窗体放置一个按钮,复制一下代码: Private Sub Command1_Click()MsgBox "10和20的平均数是:" & Avg(10, 20)End Sub Function Avg(a As Single, b As Single) As DoubleAvg = (a + b) / 2End Function
2023-06-05 09:36:051

c语音double aver是什么意思

第二个问题:scanf("%d",score)应为scanf("%d",&score); 第三个问题:aver=sum-max-min/num应为aver=(sum-max-min)/num; 第四个问题:printf(" f",aver)应为printf
2023-06-05 09:36:131

c语言return返回得到的数值出错?

float sum;没有给初值
2023-06-05 09:36:191

用c语言设计一个程序统计一个班的学生成绩

改好了,问题不大,我都写在注释里了:#include<stdio.h>#include<math.h>#defineN35#defineCOURSE4structstudent{charnum[10];/*如果把num当作字符串的话,不能用int,而是char数组。不然就用intnum;*/floatscore[4];floatsum;floataver;}stu[N];voidmain(){voidInput(structstudentstu[]);voidcount(structstudentstu[]);voidsort(structstudentstu[]);voidfind(structstudentstu[]);sqrt(1.0);/*不知你用什么编译器,如果TC的话,有个BUG。就是结构体里有float型的话,要加这句,不然会报错*/Input(stu);count(stu);find(stu);/*为什么你的程序里没有执行着几个函数咧?*/}voidInput(structstudentstu[]){inti,j;printf("EnterNo.andscoreas:score1score2score3score4 ");for(i=0;i<N;i++){scanf("%s",stu[i].num);/*用%s输入字符串*/for(j=0;j<COURSE;j++){scanf("%f",&stu[i].score[j]);}}}voidcount(structstudentstu[]){floatsum,aver;inti,j;for(i=0;i<N;i++){sum=0;for(j=0;j<5;j++)sum+=stu[i].score[j];aver=sum/4;stu[i].sum=sum;stu[i].aver=aver;}}voidsort(structstudentstu[]){inti,j,k;structstudenttemp;for(i=0;i<N;i++){k=i;for(j=i+1;j<N;j++)if(stu[k].sum<stu[j].sum)k=j;if(k!=i){temp=stu[i];stu[i]=stu[k];stu[k]=temp;}}printf("numberscore1score2score3score4sumaverage ");for(i=0;i<N;i++)printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f ",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);/*输出学号也用%s*/}voidfind(structstudentstu[]){intflag=0;inti,j;sort(stu)/*;//stu[];)*/printf("thestudentofonescore>=90and前五名: ");/*这两句调换一下位置,不然输出不太好*/for(i=0;i<5;i++){intsum=0;for(j=0;j<4;j++)if(stu[i].score[j]>=90)sum++;if(sum){flag=1;printf("%-8s%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f%-8.2f ",stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],stu[i].sum,stu[i].aver);}}if(flag==0)printf("notexist! ");/*这个判断放在循环体之外,不然会输出好多"notexist!"*/}另外,注意:1.个班的学生成绩最多35人。你的咋是固定35人捏?2.第四点要求:根据用户要求输入课程号显示该门课程成绩在90以上且总分在前五的学生的学号和各科成绩,平均分和总分你似乎没有看清题意吧?是要用户输入课程号耶。这些你自己应该知道怎么做吧?
2023-06-05 09:36:393

急急急急!学生基本信息系统用c语言写

#include<stdio.h>#include<stdlib.h>#include <malloc.h>#include<string.h>#include<memory.h>#include<conio.h>#define LEN sizeof(struct student)typedef struct student{ long numb; char name[20]; float score[3]; float ave; struct student *next;}STU;STU *creat();void print(STU *head);STU *findBynumb(STU *head,int numb);STU * del(STU *head);STU * insert(STU *head);void find(STU *head);STU *findByname(STU *head,char name);STU *update(STU *head);void sort(STU *head);void save();void copy(STU *head);STU *load(STU *head);int n;void main(){ STU *head;int chiose; for(;;){ system("cls"); printf(" **************************** "); printf(" 欢迎使用学生信息管理系统: "); printf(" **************************** "); printf(" [1] 建立学生信息列表; "); printf(" [2] 查找学生信息; "); printf(" [3] 删除学生信息; "); printf(" [4] 插入学生信息; "); printf(" [5] 修改学生信息; "); printf(" [6] 学生信息排序; "); printf(" [7] 学生信息保存到文件; "); printf(" [8] 文件备份; "); printf(" [9] 从文件读取学生信息; "); printf(" [10] 显示全部信息; "); printf(" [0] 退出。 "); printf(" **************************** "); printf(" 请选择0~10进行操作。 "); scanf("%d",&chiose); if(chiose==0) break; switch(chiose){ //创建 case 1: head=creat();print(head);break; //查找 case 2: find(head); break; //删除 case 3: head=del(head); print(head); break; //插入 case 4: head=insert(head);print(head); break; //修改 case 5: head=update(head);print(head); break; //排序 case 6: sort(head); break; //文件保存 case 7:save(head);break; //备份 case 8: copy(head);break; //读取 case 9:head=load(head);print(head); break; //显示信息 case 10:print(head);break; } } printf("感谢的您的使用!再见! ");}//建立STU *creat(){ STU *head,*pnew,*ptail; system("cls"); printf("当学号输入为0是结束. "); head=NULL; n=0; while(1) { //申请新节点 pnew=(STU *)malloc(LEN); printf("学号 姓名 成绩1 成绩2 成绩3 "); scanf("%ld%s%f%f%f",&pnew->numb,pnew->name,&pnew->score[0],&pnew->score[1],&pnew->score[2]); pnew->ave=(pnew->score[0]+pnew->score[1]+pnew->score[2])/3; if(pnew->numb==0) break; //将节点连接到链表尾部 n++; if(n==1){ head=pnew; ptail=pnew; } else{ ptail->next=pnew; ptail=pnew; } } ptail->next=NULL; return head;}//输出void print(STU *head){ STU *p; printf("当前共有%d个学生信息: ",n); printf("学号 姓名 成绩1 成绩2 成绩3 平均分 "); for(p=head;p!=NULL;p=p->next) printf("%ld %s %.2f %.2f %.2f %.2f ",p->numb,p->name,p->score[0],p->score[1],p->score[2],p->ave); printf(" "); printf("按任意键继续……"); getch();}//查找void find(STU *head){ int cho,num,n;char nam[20];STU *p; for(;;){ system("cls"); printf("按学号查找请输入1; "); printf("按姓名查找请输入2; "); scanf("%d",&cho); if(cho==1){ printf("请输入要查找的学生的学号:"); scanf("%ld",&num); p=findBynumb(head,num); if(p==NULL) printf("没有找到!"); else { printf("找到了,学生信息如下: "); printf("学号 姓名 成绩1 成绩2 成绩3 平均分 "); printf("%ld %s %.2f %.2f %.2f %.2f %.2f ",p->numb,p->name,p->score[0],p->score[1],p->score[2],p->ave); } } ; if(cho==2){ printf("请输入要查找的学生的姓名:"); scanf("%s",nam); p=findByname(head,nam); if(p==NULL) printf("没有找到!"); else { printf("找到了,学生信息如下: "); printf("学号 姓名 成绩1 成绩2 成绩3 平均分 "); printf("%ld %s %.2f %.2f %.2f %.2f %.2f ",p->numb,p->name,p->score[0],p->score[1],p->score[2],p->ave); } } printf("继续查找请输入1;退出查找请输入2; "); scanf("%d",&n); if(n==2)break; }}STU *findBynumb(STU *head,int numb){ STU *p,*presult; presult=NULL; for(p=head;p!=NULL;p=p->next) if(p->numb==numb) presult=p; return(presult);}STU *findByname(STU *head,char name[10]){ STU *p,*presult; presult=NULL; for(p=head;p!=NULL;p=p->next) if(strcmp(name,p->name)==0) presult=p; return(presult);}//删除STU * del(STU *head){ long numb;STU *pcur,*p; printf("请输入要删除的学生的学号:"); scanf("%ld",&numb); pcur=findBynumb(head,numb); if(pcur!=NULL) { if(head==pcur) head=pcur->next; else { for(p=head;p!=NULL;p=p->next) if(p->next==pcur) p->next=pcur->next; } n--; } else printf("没找到!"); return(head);}//插入STU * insert(STU *head){ STU *pcur,*pbefore,*p,*pnew; int choise; for(;;) { printf("请输入插入学生的信息: "); pnew=(STU *)malloc(LEN); printf("学号 姓名 成绩1 成绩2 成绩3 "); scanf("%ld%s%f%f%f",&pnew->numb,pnew->name,&pnew->score[0],&pnew->score[1],&pnew->score[2]); pnew->ave=(pnew->score[0]+pnew->score[1]+pnew->score[2])/3; for(p=head;p!=NULL;pbefore=p,p=p->next) { if(pnew->numb<p->numb) { pcur=p; break; } } if(head==NULL) { head=pnew; pnew->next=NULL; } else { if(p==NULL) //插入尾节点 { pbefore->next=pnew; pnew->next=NULL; } else { //插入头结点 if(head==pcur) { head=pnew; pnew->next=pcur; } //插入中间 else { pbefore->next=pnew; pnew->next=pcur; } } n++; } printf(",添加成功!继续添加请输入【1】;结束添加输入【2】; "); scanf("%d",&choise); if(choise==2) break; } return(head);}//修改学生信息STU *update(STU *head){ int numb;STU *p; printf("请输入所要修改的学生的学号:"); scanf("%d",&numb); p=findBynumb(head,numb); printf("请输入该生的信息: "); printf("学号 姓名 成绩1 成绩2 成绩3 "); scanf("%ld%s%f%f%f",&p->numb,p->name,&p->score[0],&p->score[1],&p->score[2]); return(head);}//排序void sort(STU *head){ int choise; STU *pi,*pj,*pindex; STU temp; printf("按分数排列请输入1; 按学号排列请输入2; "); scanf("%d",&choise); if(choise==1){ int len=sizeof(STU)-sizeof(STU *); int i,j; for(pi=head,i=0;i<n-1;i++,pi=pi->next) { pindex=pi; for(pj=pi->next,j=i+1;j<n;j++,pj=pj->next) if(pindex->ave > pj->ave) pindex=pj; memcpy(&temp,pi,len); memcpy(pi,pindex,len); memcpy(pindex,&temp,len); } printf("排序完成,按任意键继续……"); getch();} if(choise==2){ int len=sizeof(STU)-sizeof(STU *); int i,j; for(pi=head,i=0;i<n-1;i++,pi=pi->next) { pindex=pi; for(pj=pi->next,j=i+1;j<n;j++,pj=pj->next) if(pindex->numb > pj->numb) pindex=pj; memcpy(&temp,pi,len); memcpy(pi,pindex,len); memcpy(pindex,&temp,len); } printf("排序完成,按任意键继续……"); getch(); }}//保存void save(STU *head){ STU *p; FILE *fp; char filename[20]; printf("请输入写入的文件名:"); scanf("%s",filename); if((fp=fopen(filename,"w"))==NULL) { printf("cannot open this file!"); exit(0); } fprintf(fp,"一共有%d个学生信息。 ",n); fprintf(fp,"学号 姓名 成绩1 成绩2 成绩3 平均分 "); for(p=head;p!=NULL;p=p->next) fprintf(fp,"%ld %s %.2f %.2f %.2f %.2f",p->numb,p->name,p->score[0],p->score[1],p->score[2],p->ave); fclose(fp); printf("保存成功!");}STU *load(STU *head){ int i; char filename[20],secondline[50]; FILE *fp; STU *p,*pcur; system("cls"); printf("请输入所需读取的文件名称:"); scanf("%s",filename); if((fp=fopen(filename,"r"))==NULL){ printf("无法打开文件 "); exit(1); } fscanf(fp,"共有%d条学生信息数据: ",&n); for(i=0;i<6;i++)// fscanf(fp,"%s",secondline);// head=NULL; for(i=0;i<n;i++) { p=(STU *)malloc(LEN); fscanf(fp,"%ld%s%d%d%d%f",&p->numb,p->name,&p->score[0],&p->score[1],&p->score[2],&p->ave); p->next=NULL; if(head==NULL) { head=p; pcur=p; } else{ pcur->next=p; pcur=p;} } fclose(fp); printf("读取成功,请按任意键继续:"); getch(); return head;} //备份void copy(){ FILE *in; FILE *out; char filename[20]; char file[20]; printf("其输入源文件名称:"); scanf("%s",filename); printf("请输入副本文件名称:"); scanf("%s",file); if((in=fopen(filename,"r"))==NULL) { printf("cannot open this file "); return; } if((out=fopen(file,"w"))==NULL) { printf("cannot open this file "); return; } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); printf("文件备份成功……");}
2023-06-05 09:36:482

题目内容:输入3个整数,输出它们的平均值,保留3位小数

用c语言,程序如下:#include<stdio.h>intmain(){ floata,b,c; floataver=0; scanf("%f%f%f",&a,&b,&c); aver=(a+b+c)/3.0; printf("平均值=%.3f ",aver); return0;}下面是程序结果图:还有问题吗,谢谢采纳,Thanks♪(・ω・)ノ
2023-06-05 09:37:051

c语言:输入10个学生的成绩,求学生的平均成绩,并统计超过平均分数的学生人数。

#include<stdio.h>int main(){int i,num=0,s[11]={0};for(i=1;i<=10;i++){scanf("%d",&s[i]);s[0]+=s[i];}s[0]=s[0]/10;for(i=1;i<=10;i++) if(s[i]>s[0]) num++;printf("%d ",num);return 0;}
2023-06-05 09:37:153

C语言里关于变量生存期的一个问题,知道的大神帮忙看下

输入学生成绩是在ReadScore()函数中定义的数组score[]你这句话就理解错了,void ReadScore(int score[], int n)中的score[]是从被调函数处传入的,而且调用时ReadScore(score, n); 传入的是数组的地址,如此就在函数中完成了输入,退出函数时原来传入的数组值也就改变了
2023-06-05 09:37:242

某班有5个学生,三门课。分别编写3个函数实现以下要求: (1) 求各门

//本程序未对输入数据进行检查,所以请在保证输入正确的情况下(即要求输入的为正数,可以是小数)运行本程序,在c-free4.0下编译通过#includevoidaverage(void);voidlow_score(void);voidhigh_ave(void);floatscore[5][3];floatave[3];intflag[5]={0};main(){printf("输入成绩依次为:语文数学英语,各成绩间以空格间隔 ");printf("请输入王强(学号为a001)的成绩:");scanf("%f%f%f",&score[0][0],&score[0][1],&score[0][2]);printf(" 请输入徐明(学号为a002)的成绩:");scanf("%f%f%f",&score[1][0],&score[1][1],&score[1][2]);printf(" 请输入黄立(学号为a003)的成绩:");scanf("%f%f%f",&score[2][0],&score[2][1],&score[2][2]);printf(" 请输入周梅(学号为a004)的成绩:");scanf("%f%f%f",&score[3][0],&score[3][1],&score[3][2]);printf(" 请输入陈怡(学号为a005)的成绩:");scanf("%f%f%f",&score[4][0],&score[4][1],&score[4][2]);average();low_score();high_ave();printf(" ");}//--------------------求各科平均分子函数--------voidaverage(void){inti,j;floatsum[3]={0};printf(" 各科平均分:");for(j=0;j<3;j++)for(i=0;i<5;i++){sum[j]=sum[j]+score[i][j];if(i==4){ave[j]=sum[j]/5;switch(j){case0:printf(" 语文平均分为:%0.2f",ave[j]);break;case1:printf(" 数学平均分为:%0.2f",ave[j]);break;case2:printf(" 英语平均分为:%0.2f",ave[j]);break;}}}}//---------------------两门及以上低于60统计--------voidlow_score(void){inti,j,k,n;intlowscore[5][3];for(i=0;i<5;i++)for(j=0;j<3;j++){lowscore[i][j]=5;}printf(" 两门及以上成绩不及格统计:");for(i=0;i<5;i++){k=0;for(j=0;j<3;j++){if(score[i][j]<60){flag[i]++;lowscore[i][k]=j;k++;}}if(flag[i]>=2){switch(i){case0:printf(" 王强(学号为a001):");break;case1:printf(" 徐明(学号为a002):");break;case2:printf(" 黄立(学号为a003):");break;case3:printf(" 周梅(学号为a004):");break;case4:printf(" 陈怡(学号为a005):");break;}for(n=0;n<3;n++){switch(lowscore[i][n]){case0:printf("语文%0.1f",score[i][0]);break;case1:printf("数学%0.1f",score[i][1]);break;case2:printf("英语%0.1f",score[i][2]);break;case5:break;}}}}}//------------三门课平均分在85至90之间------------voidhigh_ave(void){inti,j;floatsum[5]={0};floataver[5];printf(" 三门课平均分在85至90之间统计:");for(j=0;j<5;j++)for(i=0;i<3;i++){sum[j]=sum[j]+score[j][i];if(i==2){aver[j]=sum[j]/3;if(aver[j]>=85&&aver[j]<=90){switch(j){case0:printf(" 王强(学号为a001):平均分为:%0.2f",aver[0]);break;case1:printf(" 徐明(学号为a002):平均分为:%0.2f",aver[1]);break;case2:printf(" 黄立(学号为a003):平均分为:%0.2f",aver[2]);break;case3:printf(" 周梅(学号为a004):平均分为:%0.2f",aver[3]);break;case4:printf(" 陈怡(学号为a005):平均分为:%0.2f",aver[4]);break;}}}}}/*姓名学号什么的都可以在源程序修改,问题没要求输入学号姓名,所以这些都自己定义了。有不懂的可以提问,注释就不写了。还有,多给点分,花了一个晚上写的*//*今天又增加了对未出现有两门以上不及格的学生及三门课平均成绩在85-90分的学生情况的处理方法,如有需要,另行联系*/
2023-06-05 09:37:451