c语言结构体教程的题目,40名学生,输入学号,姓名,三门课成绩和平均分编两个函数实现以下功能,错在哪?

为了账号安全,请及时绑定邮箱和手机
c语言编程题:用结构体数组,学生信息由学号、姓名,成绩组成,数据如下: LI
使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上
将学生中不及格学生的姓名显示出来
写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数#include&stdio.h&#define N 3struct student{char sno[20];char name[20];int score[20];}s[N];void input(){int i,j;for(i=0;i&N;i++){printf("输入学号:");scanf("%s",s[i].sno);printf("输入姓名:");scanf("%s",s[i].name);printf("输入功课成绩:");scanf("%d",s[i].score);printf("\n");}}int sortl(int n){
double sum=0;
n=0;for(i=0;i&N;i++)//求平均分{sum=sum+s[i].score[i];
s[i].avg=sum/N;}
for(i=0;i&N;i++)//排序(依据平均分)if(s[i].avg&s[i+1].avg){
t=s[i];s[i]=s[i+1];s[i+1]=t;}printf("不及格:\n");//找不合格for(i=0;i&N;i++)if(s[i].score[i]&60){
n=n+1;printf("%s\t",s[i].name);printf("\n");}//返回不及格的人的个数}void output(){int i,j;printf("排序后(升序):\n");printf("学号\t
平均\n");for(i=0;i&N;i++){printf("%s\t%s\t%d\t",s[i].sno,s[i].name,s[i].score[i]);printf("%.2lf",s[i].avg);printf("\n");}}int main(){int m,k;input();k=sortl(m);output();printf("不及格人数%d\n",k);return 0;}我写的有好多问题,帮忙修改也行,最好能整理一下发代码
欢迎交流。
你好,这是我的程序,应该还有一些小bug,如果有疑问请继续提问。#include &stdio.h&
#define NUM 3
struct student
char* sno = new char[20];
char* name = new char[20];
bool fail =
void stuSort(student* stu)
for (int i = 0; i & NUM; i ++)
for (int j = 0; j & NUM; j ++)
if (stu[j].score & stu[i].score)
tmp.name = stu[j].
tmp.sno = stu[j].
tmp.score = stu[j].
stu[j].name = stu[i].
stu[j].sno = stu[i].
stu[j].score = stu[i].
stu[i].name = tmp.
stu[i].sno = tmp.
stu[i].score = tmp.
for (int i = 0; i & NUM; i ++)
printf("%s %s %d\n",stu[i].sno,stu[i].name,stu[i].score);
void stuFail(student* stu)
int numOfStu = 0;
for (int i = 0; i & NUM; i ++)
if (stu[i].fail == true)
printf("%s",stu[i].name);
numOfStu ++;
if (numOfStu == NUM)
printf("%s\n","no fail");
void stuAvg(student* stu)
int stuScore = 0;
double stuAvg = 0;
int cnt = 0;
for (int i = 0; i & NUM; i ++)
stuScore += stu[i].
stuAvg = stuScore / NUM;
for (int i = 0; i & NUM; i ++)
if (stu[i].score & stuAvg)
printf("%d\n",cnt);
int main()
student* stu = new student[NUM];
for(int i = 0; i & NUM; ++ i)
printf("输入学号:");
scanf("%s",stu[i].sno);
printf("输入姓名:");
scanf("%s",stu[i].name);
printf("输入功课成绩:");
scanf("%d",&stu[i].score);
stuSort(stu);
stuFail(stu);
stuAvg(stu);
stu = NULL;
你还没有登录,请先登录或注册慕课网帐号
19631人关注
11928人关注
4052人关注
Copyright (C)
All Rights Reserved | 京ICP备 号-2查看: 533|回复: 10
编写程序:一个班有5名同学,每名同学都有如下信息:学号,姓名,三门课程的成绩(高等数学、英语、大学物理)。按信息从键盘输入数据;计算每位同学的总成绩,并且按总成绩从高到低排序后输出全班同学的信息(在学号、姓名、高等数学成绩、英语成绩、大学物理成绩、总成绩下输出每行信息)。用C语言
Input(SCORE myClass,5); // 改为Input(myClass,5); Highest(SCORE myClass,5); // 改为high = Highest(myClass,5); int Highest(SCORE *pStu, int n) { int i, pos = 0; pos=0; for(i=1;ipStu[pos].aver) pos=i; } } 结构体里少了
#include #include typedef struct { char num[10]; char name[10]; float score[3]; } void input(int n,stu *s) { for(int i=0;i
小学的废才
留下邮箱,这两天给你
用数组循环一下就可以了.
参考代码: #include #include#define MAX 100class Student{private:double subject[3];public:void input(Student s[], int);void sort(Student s[], int);void print(Student s[],
经测试,程序正确运行,并把输入结果保存在stud文件中。 源代码如下: #include #define ID 11 typedef struct _stu { char id[ID]; int sco1; int sco2; int sco3; } int main() { stu s[5]; FILE * printf(&请输入五
#include struct grades { }; struct student { char name[20]; int ID; s }; #define n 3 void main() { struct student stu[n+1]; int i,j,a,b; int flog=0; int chan
void main() {/*二维数组*/ int i,j,a[3][5],b[3]; float temp_all=0,temp_c=0,s=0; char *c[5]={&张三&,&王五&,&李四&,&赵六&,&周八&}; char *t[3]={&math&,&c&,&foxpro&}; //void change(int a[],int t); for(i=0;i
可以用结构体的,很简单,一定要用函数啊?22:16 提问
怎样用c++写“定义学生结构体数据(学号,姓名,三门成绩)输入,五个学生人数”
求每名学生的平均成绩和没门课程的平均成绩第三小题
按赞数排序
struct stu
char name[10];
int score[3];
stu data[5];
int sum = 0;
for (int i = 0; i & 5; i++)
sum += data[i].score[i];
double avg = sum / 5.0;
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!
其他相似问题

我要回帖

更多关于 c语言结构体初始化 的文章

 

随机推荐