编写函数show,输出一个学生的成绩数组,该数组中有六个学生的记录,用主函数输入记录,show函数输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写函数show,输出一个学生的成绩数组,该数组中有六个学生的记录,用主函数输入记录,show函数输出相关的知识,希望对你有一定的参考价值。
#include<stdio.h>
#include<stdlib.h>
struct student
int num;
char name[20];
double score;
;
void show(struct student*s);
int main()
struct student stu[6];
for(int i=0;i<6;i++)
scanf("%d/%f/%s",&stu[i].num,&stu[i].score,stu[i].name);
show(stu);
system("PAUSE");
return 0;
void show(struct student*s)
for(int i=0;i<6;i++)
printf("%d/%s/%f\n",s[i].num,s[i].name,s[i].score);
----------------------帮忙看看这个代码哪里有问题,编译运行的时候出来一些乱七八糟的数字。。。
struct student stu[6];
for(int i=0;i<6;i++)
scanf("%d/%lf/%s",&stu[i].num,&stu[i].score,stu[i].name); //double
注意这里输入数据的格式为:
1/100/张三
2/98/李四 这样子才可以!
show(stu);
system("PAUSE");
return 0;
追问
哦哦,现在懂了,改过来了,谢谢。
追答double 你要用%lf才可以,我上面提示你了!
%f对应的是float! 这两个点内存大小不同,格式串用错了,会导致数据不正确!
show()中输出也要改
printf("%d/%s/%lf\n",s[i].num,s[i].name,s[i].score);
是的是的,刚没怎么看仔细。。谢谢啦
追答不客气
参考技术B 把double改为floatc语言编程 一维数组和函数
任务说明:
从键盘输入一个班(全班最多不超过30人)学生的学号和某门课的成绩,当输入成绩为负值或人数超过30时,输入结束。编程统计不及格人数并打印不及格学生名单;编程统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单。要求:
输入的学生学号及分数请在Input()函数实现;
统计不及格人数及打印不及格学生名单请在Total1()函数实现;
统计成绩在全班平均分及平均分之上的学生人数及打印这些学生的名单请在Total2()函数实现;
Input函数原型如下:
int Input(long num[], float score[]);
参数说明:数组 num 存放学生的学号,数组 score 存放学生的分数
返回值:返回班级的实际人数
5. Total1函数原型如下:
void Total1(long num[], float score[], int n);
参数说明:数组 num 存放学生的学号,数组 score 存放学生的分数,n 班级实际人数
返回值:无
6. Total2函数原型如下:
void Total2(long num[],float score[],int n);
参数说明:数组 num 存放学生的学号,数组 score 存放学生的分数,n 班级实际人数
输入要求:详见输入样例
输出要求:详见输出样例
输入输出样例:
Input sample:
19001 78
19002 86
19003 65
19004 56
19005 98
19006 78
19007 90
19008 -1
Output sample:
19004
The score<60 is:1
19002
19005
19007
The score>=averge is:3
int Input(long num[], float score[]);
void Total1(long num[], float score[], int n);
void Total2(long num[],float score[],int n);
int main()
long num[30];
float score[30];
int n;
n=Input(num, score);
Total1(num, score,n);
Total2(num, score,n);
return 0;
int Input(long num[], float score[])
int i=0;
while(i<30)
scanf("%ld%f",&num[i],&score[i]);
if(score[i]<0)
break;
i++;
return i;
void Total1(long num[], float score[], int n)
int i,c=0;
for(i=0; i<n; i++)
if(score[i]<60)
c++;
printf("%ld\n",num[i]);
printf("The score<60 is:%d\n",c);
void Total2(long num[],float score[],int n)
int i,c=0;
float a=0;
for(i=0; i<n; i++)
a+=score[i];
a/=n;
for(i=0; i<n; i++)
if(score[i]>=a)
c++;
printf("%ld\n",num[i]);
printf("The score>=averge is:%d\n",c);
本回答被提问者和网友采纳
以上是关于编写函数show,输出一个学生的成绩数组,该数组中有六个学生的记录,用主函数输入记录,show函数输出的主要内容,如果未能解决你的问题,请参考以下文章
编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用print函数输入,input函数输出
C语言 编写一个函数print,输出一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录
C语言 编写一个函数print,输出一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录
C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。
C语言试题五十一之已知学生的记录是由学号和学习成绩构成,n名学生的数据已存入s结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。