#include<stdio.h>
struct STUDENT
{
char id[10];
int score[5];
double ave;
}
stu[10];
void average();
void nopass();
void good();
void main()
{int num=10,i,j;
for(i=0;i<num;i++)
{
printf("\t请输入第%d个学生的数据",i+1);
printf("\t学号:");
scanf("%s",stu[i].id);
for(j=0;j<5;j++)
{
printf("\t第%d门课的成绩:",j+1);
scanf("%d",&stu[i].score[j]);
}
}
average();
nopass();
good();
}
void average()
{int a=0,i;
float b=0;
for(i=0;i<10;i++)
a=a+stu[i].score[0];
b=a/10;
printf("\t the average score is :%f",b);
}
void nopass()
{
printf("不及格学生");
int i,j,sum=0;
for(i=0;j<10;i++)
{for(j=0;j<5;j++)
{if(stu[i].score[j]<60)
sum=sum++;
}
if(sum>=2)
{for(j=0;j<5;j++)
printf("第%d门成绩为%d\n",j+1,stu[i].score[j]);
printf("学号:%s\n",stu[i].id);
for(j=0;j<5;j++)
sum+=stu[i].score[j];
stu[i].ave=sum/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
void good()
{
printf("\t优秀学生\n\n");
int i,j,n,k,sum=0;
for(i=0;i<10;i++)
{ for(j=0;j<5;j++)
{
if(stu[i].score[j]>80)
sum++;
}
if(sum=5)
{
n=0;
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
for(j=0;j<5;j++)
n=n+stu[i].score[j];
stu[i].ave=n/5.0;
printf("\t平均成绩%f\n",stu[i].ave);
}
}
for(i=0;i<10;i++)
{ k=0;
for(j=0;j<5;j++)
{ k+=stu[i].score[j];
stu[i].ave=k/5.0;
if(stu[i].ave>85)
{
for(j=0;j<5;j++)
printf("第%d门的成绩%d",j+1,stu[i].score[j]);
printf("学号%s",stu[i].id);
printf("\t平均成绩%f\n",stu[i].ave);
}
}
}
}
题目:一个班有10个学生,每个学生有学号,以及数学,物理,英语,语文,体育5门课的成绩信息。分别编写3个函数以实现以下3个要素:
(1)求数学的平均成绩
(2)对于有两门以上课程不及格的学生,输出他们的学号,各门课成绩及平均成绩
(3)输出成绩优良的学生(平均成绩在85分以上或全部成绩都在80分以上)的学号,各门课成绩和平均成绩
C语言简单程序!这个程序高手帮忙看看吧 能运行但是结果不对 输入1的...
C语言当中运算符 ^ 是按位的异或运算,并不表示求幂运算!如果你想表示一个很小的数最简单的办法就是直接写0.000001 或者使用pow函数,pow(底数,指数)
c语言编写海伦公式,我的为什么没错误,运行出来却不对呢。
控制台进行输入过程中的逗号应该和scanf中格式化字符串中的逗号一致,都是英文的标点 你输入了中文的逗号
请高手帮忙,用C语言输出以下程序.
{ for(int i=1;i<=10;i++){ printf("%d\\t%d\\t%d\\n",i,i*i,i*i*i);} }
关于C语言编写程序的一个疑问 高手帮忙看看我的程序哪错了
其次,格式化输出的格式有错误。若定义一个字符数组,char ch[20] = "hahaha";将它以字符串的形式输出,用printf("%s",ch);而在以上代码中,%s全都写成了s%。以后不要粗心了啊。再次,也是以刚刚我举的为例。20位的字符数组ch[20]以字符串形式输出,用到的是printf("%s",ch);注意,这里是ch...
大哥大姐帮忙看这是什么问题~~~ 谢谢了
在没有保护机制的操作系统下(如DOS),写数据到这个地址会导致立即死机,而在健壮的操作系统中,如Windows等,这个操作会马上被系统的保护机制捕获,其结果就是由操作系统强行关闭出错的应用程序,以防止其错误扩大。这时候,就会出现上述的“写内存”错误,并指出被引用的内存地址为“0x00000000”。内存分配失败故障的原因...
[急求助]C语言程序编程题,请高手帮忙解答下!
按照题目要求编写的程序如下(见图)
各位C语言高手帮帮忙:下面是代码!编译过后提示没有定义x,y
运行后我们发现输出结果不是"8 5"而依旧是"5 8",也就是说交换函数并没有将2个变量的值交换,这是为什么呢?我们知道,C语言中整型变量的形式参数传递的是值而不是地址,也就是形式参数实际上是复制了实际参数的值进入函数运算的,而被复制的实际参数的值并没有改变。就这段代码来说,就是形参x...
c语言读程序写出执行结果,求高手帮忙解答
第一题:1 4 7 2 5 8 3 6 9 第二题:21 第三题:1 第四题:j = 64 第五题:j =81 第六题:18 这个只能帮到你一时,平时还是靠自己去学的,加油吧!
...运行没问题,提交之后runtime error,高手帮忙看看吧
在本地运行结果没问题,什么也不能说明.你这代码太过冗杂。看看这个代码 include <iostream> include <string> include <vector> include <algorithm> \/\/ STL sort function using namespace std;char map[] = "2223334445556667#77888999#";\/\/ABCDEFGHIJKLMNOPQRSTUVWXYZ void visited(char &ch) \/\/ ...
...问题:在C语言中,整型数据以“%f”格式输出时,不对的根本原因是?_百 ...
后部分视作指数 从几开始我也忘了 呵呵 当然会出错啦 额 不对应格式输出全部都不可以!理由依然是数据解释不对 比如说你要输出'A' 但是用了%d的控制符 那么就会输出65 因为A在ASCII表中的大小事65 也就是说数据0100 0001 你用%c输出 就表示字符'A' 用%d输出就表示65 明白了否?