在主函数中c 输入函数N个人的某门课程的成绩,分别用函数求平均分、最高分、最低分和各分数段人数。求看哪里错了

输入10个学生的5门课的成绩,分别用函数实现下列功能,1,计算每个学生的平均分,计算每门课的平均分.找出所有50个分数中,输入10个学生的5门课的成绩,分别用函数实现下列功能,1,计算每个学生的平均分,计算每门课的平均分.-爱问知识网
输入10个学生的5门课的成绩,分别用函数实现下列功能,1,计算每个学生的平均分,计算每门课的平均分.
找出所有50个分数中最高的分数所对应的学生和课程,计算平均方差。谢谢了,大神!!!
0}; //stu_ave用于存放每个学生的总成绩;lessom_ave[2]+=t3,i+1);scanf(&%f%f%f%f%f&;/计算5门课的总分;10;i++){stu_ave[i]/=5;,i+1,stu_ave[i]);}printf(&\i++){lessom_ave[i]/=10;printf(&10;i++){printf(&输入第%d个学生5门课的成绩,t5; /&#47,&t5);stu_ave[i]=t1+t2+t3+t4+t5; /&#47.并输出for(i=0;i&n&);//计算每个学生的平均分:%;n&#92:%,&t1,&t4;第%d门课的平均分,&t2,&t3,lessom_ave用于存放5门课的总成绩 float t1,t2;}}请采纳;/计算5门课程的平均分;计算每个学生的总成绩;/lessom_ave[1]+=t2;printf(&第%d个学生的平均分;lessom_ave[3]+=t4.3f\n&quot: &;5;}&#47,t3,t4;lessom_ave[4]+=t5;,i+1,lessom_ave[i])相信我这个是最简单的了. 你看看.并输出for(i=0;i&lt.lessom_ave[0]+=t1;stdio. 有不明白的可以问我.#include &用于输入每个学生5门课的成绩.for(i=0;i&lt.h&void main(){float stu_ave[10],lessom_ave[5]={0.3f\n&quot
n&;j:%,li=0,lj=0,i); for(j=0,a5,largest=0,fc=0; float score[10][5]; printf(& lj=j+1;); printf(& for(i=0;i!=10;++i) { for(j=0; &#47:\n&quot,a1,a2;,a4); printf(&第5门课的平均分为:%.2f\lj是最高分的学科;++j) { scanf(&%f&,j;n&; a4=a4/10; for(i=0;i!=10;++i) { printf(&第%d个学生;请输入10个学生的成绩,li是最高分的学生 //,i+1,average[i]); printf(&第1门课的平均分为:%.2f&#92.2f &; a5=a5/10;n&; printf(& a2=a2+score[i][1]; a3=a3+score[i][2],a1),largest); printf(&平均分方差为; a4=a4+score[i][3]; a5=a5+score[i][4];++i) printf(& for(i=0;i!=10;++i) { printf(&%8d &; main() { int i,score[i][j]); } printf(&&#92!=10;);n&); } for(i=0,fc是平均分方差,a是50个成绩的平均分 printf(&quot!=5;++j) { fc=fc+(score[i][j]-a)*(score[i][j]-a); a2=a2/10:%; } } fc=fc/50,按照语文、数学,a=0、化学的顺序依次输入;第2门课的平均分为;n&); printf(&学生编号 语文 数学 英语 物理 化学\n&quot,a5);),a3)!=5;++j) { printf(&%2; } a=a/50; a1=a1/10:\n&/score是50个学生的成绩;第%d个学生的平均分为;,a2); printf(&第3门课的平均分为:%.2f\n&; for(j=0;j!=5,average[10];,i+1)、英语、物理;50个分数中最高的分数是第%d个学生的第%d门课,分数为:%.2f\j; } a=a+score[i][j]; } average[i]=(score[i][0]+score[i][1]+score[i][2]+score[i][3]+score[i][4])/5; a1=a1+score[i][0]; a3=a3/10#include&stdio.h&gt:%,&score[i][j]);50个学生的成绩如下:\ printf(&quot.2f\n&第4门课的平均分为; li=i+1; if(largest&score[i][j]) { largest=score[i][j],average是5门课的平均成绩,a1-a5分别是5门课的平均成绩,l......编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分_百度知道
编程实现输入8个学生某门功课的成绩,用函数求出平均分,并在主函数中输出平均分
以及高于平均分的同学的成绩。并写出2组以上程序运行结果。
我有更好的答案
%d&,a[i]);
i++; } printf(&\,m);
i++,sum=0;m)
printf(&quot,i=0;%d\n&int main(void){ int i=0.h&int average(int a[]); printf(&);n&); return 0;}int average(int a[]){ int m=0;,&n);
a[i]=n;8) {
sum=sum+a[i];
i++; } i=0; while(i&lt:\n&quot,a[8],n,m; printf(&请输入8位同学的成绩;
while(i&8) {
if(a[i]&gt#include & while(i&8) {
scanf(& } i=0;
m=average(a);%d\t&stdio
采纳率:44%
printf(&第%d个学生的分数:&;
printf(&请分别输入5个学生的成绩; score[j])
t = score[i]; 5; ++i)
printf(&%d & ++i)
printf(& i & 5;
printf(&n由高到底成绩如下;
scanf(&quot, score[i]);
printf(&&#92.h&void main(){
int score[5];
printf(&\
for (i = 0; i &lt, total);%d&quot:%d&, num);
for (i = 0; ++i)
for (j = i + 1; j &lt:\n&, score[i]), score[0]);
printf(&n&);
for (i = 0; i & 4, j,\n总成绩为:%d&;%d &;n最高成绩为:%d&:%d&quot.1f&quot:\n&
score[i] = score[j];, score[4]);n不及格人数为, total = 0, num = 5;);
printf(&\, &score[i]);
total += score[i];
if (score[i] &\n最低成绩为;n平均成绩为:%0;}另外; 60)
--num, i+1);
for (i = 0; i & 5; ++j)
if (score[i] &lt#include &);五个学生的成绩分别为:\, (float)total/5);
score[j] =
printf(&\stdio
为您推荐:
其他类似问题
主函数的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。本帖子已过去太久远了,不再提供回复功能。高手给写一下吧,C语言,得能运行_百度知道
高手给写一下吧,C语言,得能运行
70—79分的人数在主函数中输入N个人的某门课程的成绩、80—89分的人数、最高分。(2)分别统计90—100分的人数、最低分,分别用函数求:(1)平均分、60—69分的人数
我有更好的答案
}}&#47: 93average = 72; i++)
printf(& i++)
if (s[i] &gt.010000highest = 98.900000lowest = 34.00000090-100; i & i & n,如果还有什么问题,欢迎交流;, &n): &;
int levels[5];int main(void){
double scores[100]: 270-79;}/*统计各个层次分数人数的函数*/void CalcLevels(double s[].9The 1th student'
else if (s[i] &
else if (s[i] &
return sum &#47,levels,n); i++)
if (s[i] &lt: 30-59: 2代码如下:#include &stdio.h&
l = 1000.0;
for (i = 0.0;
CalcLevels(scores,现在都是通过各个函数实现的: 98; h)
for (i = 0; i &lt,n);
double lowest = CalcLowest(scores,n); i++)
sum += s[i]:Please input the number of students N; i & 5;
scanf(& l)
l = s[i];= 89)
lvl[1]++;double CalcHighest(double s[];
scanf(&quot.8The 2th student's score is: 59;
double highest = CalcHighest(%lf&;}/*计算最低分的函数*/
printf(&average = %lf\nhighest = %lf\nlowest = %lf\n&,
average, highest, lowest);
printf(&90-100: %d\n&, levels[0]);
printf(&80-89: %d\n&, levels[1]);
printf(&70-79: %d\n&, levels[2]);
printf(&60-69: %d\n&, levels[3]);
printf(&0-59: %d\n&, levels[4]);
return 0;}, i): 10The 0th student'
else if (s[i] &double CalcLowest(double s[], int n){
double l, int lvl[], int n){
for (i = 0.7The 4th student's score is: 60The 9th student'The %dth student'= 59)
lvl[4]++:)运行结果;
for (i = 0; i &lt: 78;
else if (s[i] &*主函数*&#47: 66: 87;%d&quot: 34The 7th student'),下面是正确的运行结果,完全符合题目要求(第一次写的是一个函数完成的;
printf(&Please input the number of students N: &double CalcAver(double s[], int n){
double sum: 54The 6th student' i++)
lvl[i] = 0: 160-69;= 79)
lvl[2]++, int n){
int i.1The 8th student'= 69)
for (i = 0; i & i++)
if (s[i] &lt: 280-89;
h = -1000.0;
for (i = 0,完全符合题目要求了):希望对你有所帮助;}/*计算最高分的函数*//*计算平均分的函数*&#47: 88The 5th student's score is.6The 3th student's score is给你一个百分百正确的代码, &scores[i]);
double average = CalcAver(scores,n)
采纳率:45%
定义一个结构体-&gt如果有C的基础,那么就可以自己写;结构体数组,如果没有c的基础,写了你也看不懂,这完全没有任何难以实现的部分,给你个思路
#include&stdio.h&int N;int a[5];double max,min=100;void num(double k);void max1(double k);void min1(double k);void main(){
printf(&输入学生个数\n&); scanf(&%d&,&N); printf(&输入学生成绩\n&); for (i=0;i&N;i++) {
scanf(&%lf&,&k);
min1(k); } printf(&最高分%lf\n&,max); printf(&最低分%lf\n&,min); for (i=0;i&5;i++) {
printf(&%d\n&,a[i]); }}void num(double k){ int L; k=(int)k; L=k/10; switch (L) { case 10: case 9: a[0]++; case 8: a[1]++; case 7: a[2]++; case 6: a[3]++; case 5:
case 4: case 3: case 2: case 1: case 0: a[4]++; }}void max1(double k){ if (k&max) {
max=k; }}void min1(double k){ if (min&k) {
有错误啊!!!
#define N 10
//这里是人数int Score[N];
//这里就假设每个人的分数都是整数,没有。5的int main(){
int i, score_max, score_min, sum, num_90, num_80, num_70, num_60, num_50;
float score_
//平均分,可以有小数
for(i=0; i&N; i++)
printf(&请输入第%d人的成绩,Enter结束。&,i);
scanf(&%d&, &a[i]);
//计算平均分,最高分,最低分等等
score_max = score_min = sum =score[0];
num_90=num_80=num_70=num_60=num_50=0;
for(i=1; i&N; i++)
sum + = score[i];
if(score_max & score[i])
score_max = score[i];
if(score_min & score[i])
score_min = score[i];
if(score[i]&60)
else if(score[i]&70)
else if(score[i]&80)
else if(score[i]&90)
score_ave = (float)((sum+0.0)/N);
printf(&平均分是%f\n最高分是%d\n最低分是%d\n&, score_ave, score_max, score_min);
printf(&60分以下有%d人\n70分以下有%d人\n80分以下有%d人\n90分以下有%d人\n90分以上有%d人\n&, num_50,num_60,num_70,num_80,num_90);
return 0;}在这直接敲真的好费劲,对齐不敢保证, 回去修改下,运行下。看看吧,应该差别不大
#include&stdio.h&main(){ float stu,max=0,min=100,sum=0; int n1=0,n2=0,n3=0,n4=0,n5=0; int n=0; printf(&输入学生成绩:&);
while(1) {
scanf(&%f&,&stu);
if(stu&=90)
else if(stu&=80&&stu&90)
else if(stu&=70&&stu&80)
else if(stu&=60&&stu&70)
if(max&stu)
if(min&stu)
n++; } printf(&平均分:%f\n最高分:%f\n最低分:%f\n&,sum/n,max,min); printf(&90~100:%d\n80~89:%d\n70~79:%d\n69~69:%d\n60以下:%d\n&,n1,n2,n3,n4,n5);}输入最后一任意一个小于0的数作为结束标志
很不幸的告诉你,你的问题是访问了没有申请到的内存。你的函数虽然在函数体里面有给L,head,count申请内存空间,而且给他们赋值了,看起来好像是它们被初始化过,是不会出现访问内存违规的问题。那你就错了。你的函数根本没有返回值,没有用引用调用或者指针作为参数传值,在函数里面申请到的内存空间是在堆栈上,函数调用结束后,自动回收这部分空间,所以你的第一个函数调用结束后,你的变量就没有空间了。你后面的操作是枉然的,它们原来的首地址是在堆栈上,但是那部分空间已经被释放了!所以,会出现你说的那个问题。如果你的算法没有问题的话,建议在初始化链表时用引用调用返回头结点的地址,然后在main()里面利用这个地址,就不会有问题了。指针是双刃剑,用得好,确实很强大 ,但是对指针的操作却不是一件简单的事,经验是不断在错误中总结出来的。给你一份我以前学数据结构的吧,约瑟夫问题是学链表必不可少的一个话题。仅供参考:#include &stdio.h&#include &stdlib.h&#include &windows.h&typedef int ElemTtypedef struct LNode{ ElemT struct LNode *}Lode, *LinkLLinkList CreateCirList(void){//建立带头结点的循环链表,头结点只保存结点个数,不包括头结点本身,头结点也不参与运算。 static int LNodeNum = 0; LinkList p1, p2, p1 = (LNode*)malloc(sizeof(LNode)); head = p1; p1-&data = 0; while(p1-&data != -10){//假设以-10作为结点输入结束的标志
p1 = (LNode*)malloc(sizeof(LNode));
p2-&next = p1;
printf(&输入第%d个结点:&, ++LNodeNum);
scanf(&%d&,&p1-&data);
} free(p1); head-&data = --LNodeN p2-&next = head-& printf(&\n循环链表建立完毕,共有%d个结点!\n&,head-&data);}//CreateCirListvoid Joseph(LinkList &L, int num){//约瑟夫问题,每隔num个删除一个结点,剩下最后一个结点。如果链表带头结点,则剩两个结点。 LinkList p1 = L-& LinkList p2; int i = 1; printf(&删除...\n&); for(; i & num, p1-&next != p1; ++i, p1 = p1-&next){
if (i == num - 1){//i是该删除结点的前一个结点
p2 = p1-&//p2是该删除的结点
Sleep(100);
printf(&%-4d&,p2-&data);
p1-&next = p2-&//p1的下一个结点是删除结点的下一个结点
p2 = NULL;
p1 = p1-&//删除一个结点后,p1移到删除结点的下一个结点
i = 1;//重新计数
--L-&//结点数减1
} } L-&next = p1;//把头结点和最后剩下的结点链接起来 printf(&\n&);}//Josephvoid PrintCirList(LinkList L){//输出循环链表 LinkList p = L; printf(&%-4d&,p-&data);//首先输出头结点,如果这两句在do{}中,则输出一次后,p = L-&next,会停止输出 p = p-& do{
printf(&%-4d&,p-&data);
p = p-& }while(p != L-&next);//当输出完最后一个结点时,最后一个结点的下一个结点是链表的第二个结点 printf(&\n&);}//PrintCirListint main(){ LinkL head = CreateCirList(); PrintCirList(head); Joseph(head, 4); // 当然可以是其他值 PrintCirList(head); return 0;}另外,团IDC网上有许多产品团购,便宜有口碑
其他4条回答
为您推荐:
其他类似问题
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。[复习]实验函数指针结构体doc下载_爱问共享资料
[复习]实验函数指针结构体.doc
[复习]实验函数指针结构体.doc
[复习]实验函数指针结构体.doc
简介:本文档为《[复习]实验函数指针结构体doc》,可适用于IT/计算机领域,主题内容包含复习实验函数指针结构体实验函数的定义与调用一、实验目的、能根据问题正确确定函数的类型、掌握求值类函数的编写与调用、掌握判断类函数的编写与调用、掌握操符等。
侵权或盗版
*若权利人发现爱问平台上用户上传内容侵犯了其作品的信息网络传播权等合法权益时,请按照平台要求书面通知爱问!
赌博犯罪类
添加成功至
资料评价:
所需积分:0

我要回帖

更多关于 输入函数 的文章

 

随机推荐