printf("%10s%5d%20s%5.1f%5.1f%5.1f%5.1f%5.1f%10s\n",s[i].name,s[i].id,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total,s[i].level);
-->
printf("%10s%5d%20s%5.1f%5.1f%5.1f%5.1f%10s\n",s[i].name,s[i].id,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total,s[i].level);
写多了一个 %5.1f,应该去掉一个%5.1f。
C语言结构体输出问题,输出不了结果
为什么输出不了计算出的结果,只能输出两行文字
代码如下:
#include
#include
#define N 3
typedef struct
{
int id;//学号
char name[20];//姓名
char subject[20];//考试科目
float perf;//平时成绩
float mid;//期中成绩
float final;//期末成绩
float total;//总评
char level[10];//等级
}STU;
void input(STU [],int);//输入学生信息
void clac(STU[],int);//计算总评和等级
int fail(STU[],STU[],int);//计算不及格学生人数
void sort(STU[],int);//排序
void show(STU[],STU[],int,int);//输出学生信息
void input(STU s[],int n){//输入学生信息
for(int i=0;i
printf("请输入学生信息:\n");
scanf("%d%s%s%f%f%f",&s[i].id,&s[i].name,&s[i].subject,&s[i].perf,&s[i].mid,&s[i].final);
}
}
void clac(STU s[],int n){//计算总评和成绩
for(int i=0;i
s[i].total=0.2*s[i].perf+0.2*s[i].mid+0.6*s[i].final;
if(s[i].total>=90){
strcpy(s[i].level,"优秀");
}
else if(s[i].total>=80&&s[i].total
strcpy(s[i].level,"良好");
}
else if(s[i].total>=70&&s[i].total
strcpy(s[i].level,"中等");
}
else if(s[i].total>=60&&s[i].total<70){
strcpy(s[i].level,"及格");
}
else{
strcpy(s[i].level,"不及格");
}
}
}
int fail(STU s[],STU t[],int n){//计算不及格人数
int i,k=0;
for(i=0;i<n;i++){
if(s[i].total<60){
t[k++]=s[i];
}
}
return k;
}
void sort(STU s[],int n){//排序
int i,j;
STU temp;
for(i=0;i<n-1;i++){
for(j=0;j<n-1-i;j++){
if(s[j].total<s[j+1].total){
temp=s[j+1];
s[j+1]=s[j];
s[j]=temp;
}
}
}
}
void show(STU s[],STU t[],int n,int m){
int i;
printf("学生成绩排名情况\n");
printf("------------------\n");
printf("姓名 学号 考试科目 平时成绩 期中成绩 期末成绩 总评 成绩等级\n");
for(i=0;i<n;i++){
printf("%10s%5d%20s%5.1f%5.1f%5.1f%5.1f%5.1f%10s\n",s[i].name,s[i].id,s[i].subject,s[i].perf,s[i].mid,s[i].final,s[i].total,s[i].level);
}
printf("不及格学生情况\n");
printf("------------------\n");
printf("姓名 学号 考试科目 平时成绩 期中成绩 期末成绩 总评 成绩等级\n");
for(i=0;i<m;i++){
printf("%10s%5d%20s%5.1f%5.1f%5.1f%5.1f%5.1f%10s\n",t[i].name,t[i].id,t[i].subject,t[i].perf,t[i].mid,t[i].final,t[i].total,t[i].level);
}
}
int main(){
STU ccc[N],cwy[N];
int k;
input(ccc,N);
clac(ccc,N);
k=fail(ccc,cwy,N);
sort(ccc,N);
show(ccc,cwy,N,k);
return 0;
}
- 点赞
- 写回答
- 关注问题
- 收藏
- 复制链接分享
- 邀请回答
4条回答
为你推荐
- C语言结构体问题,萌新求助
- c语言
- 1个回答
- 【C语言】能不能做出保存任意类型的结构体类型
- c语言
- 1个回答
- 求助 C语言(结构体 函数) 查找书籍
- C语言结构体基础题目求解(感谢)
- c语言
- 1个回答
- C语言关于结构体必须要初始化吗?
- c语言
- 3个回答
- C语言中结构体必须要初始化吗?
- c语言
- 1个回答
- C语言结构输出输出有关的问题
- c语言
- 1个回答
- C语言结构体输出问题,输出不了结果
- c语言
- 4个回答
- C语言用其中一个结构的体元素从文件中查找到相同的结构体之后如何从文件中输出查找到的那个结构体
- c语言
- 3个回答
- 结构体中字符串的输入输出
- c语言
- 2个回答
- c语言:有三个学生信息,放在结构体中,要求输出全部学生信息。这段代码错哪啦?
- c语言
- 2个回答
- c语言结构体给歌手分数排序
- c语言
- 2个回答
- 【C语言】结构体数据处理异常问题
- typedef
- c
- 结构
- 异常
- 数据
- 1个回答
- C语言一个结构体指针的问题
- c
- 结构体指针
- 4个回答
- c语言 结构体指针输出信息不完整
- c
- 结构
- 指针
- 2个回答
- 关于c语言结构体指针的小问题
- c
- struct
- 对象
- 指针
- 1个回答
- c语言把结构体内容写入文件问题
- 结构体写入文件
- 文件读取
- 4个回答
- 关于C语言结构体的问题
- c
- 结构
- 指针
- 2个回答
- c语言关于结构体类型的函数的返回值return
- xcode
- c
- 2个回答
- c语言结构体中指针数组怎样赋值
- c
- 1个回答