从键盘输入10个学生的成绩
1. 从键盘输入10个学生的成绩存储在数组中,求成绩最高者的序号和成绩,且最高分为并列是两人需要分别输出
这里给出实现思路,你用哪种语言都可以。
1.读取用户电脑输入的数字,读取的内容包括姓名和成绩和换行符,应判断,输入内容包含空格,空格之前是姓名,空格之后是成绩,成绩应该是数字型,读取到换行符认为一个人的成绩读取完毕,开始读取下一个人。如果输入不满足以上条件,应该在屏幕上提示输入的问题,让用户重新输入。
2.读取之前,做一个全局变量,整形,每正确读取一个成绩,全局变量+1,记录读取的序号,一旦读取错误,序号不增加。
3.做一个对象,存放学生信息,对象包括,姓名,成绩,序号。每成功读取一个学生信息,new一个新对象,保存学生信息。
4.做一个全局变量的数组,用来存放成绩最高的学生,每成功读取一个学生信息,从数组中取出最后一个对象,将对象的成绩与输入的成绩做比较,如果数组中对象成绩大于输入成绩,则不处理;如果相等,则再向数组中加入当前对象;如果小于,则将数组清空,将当前学生信息加入到数组中。比较之前,如果判断当前数组的长度为0,则代表数组中没有数据,不用比较,直接将当前学生信息加入到数组中即可。
2. 编写程序从键盘输入10个学生的某门课程的成绩,找出成绩最高的同学并输出其成绩(用指针方式进行查找)
#include<stdio.h>
#define N 10
void main() { float a[N],*p,*q; int i;
for ( i=0;i<N;i++ ) scanf("%f",&a[i]);
p=a; q=p+1; for ( i=1;i<N;i++,q++ ) if ( *p<*q ) p=q;
printf("最高成绩:%.2f\n",*p);
}
3. C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩。
/*
C语言:编写一个程序,从键盘输入10个学生成绩,求回平均答成绩
*/
#include<stdio.h>
#defineN10
intmain()
{
floatarr[N]={0.0},s=0.0;
inti;
for(i=0;i!=N;++i){//输入
scanf("%f",&arr[i]);
s+=arr[i];
}
printf("%0.2f ",s/N);//输出平均数
return0;
}
4. 用c语言的fun函数编写程序:从键盘输入10个学生的成绩,统计及格(60分及60分以上的)人数
代码如下:
#include <stdio.h>
//判断及格人数
int fun(int a[10]){
int i, count=0;
for (i = 0; i < 10; ++i)
if(a[i]>=60) count++;
return count;
}
int main(){
int a[10],i;
printf("请输入10名学生的成绩: ");
for(i = 0;i < 10; i++)
scanf("%d",&a[i]);
int count = fun(a);
printf("及格的人数为:%d ", count);
return 0;
}
程序运行结果:内
(4)从键盘输入10个学生的成绩扩展阅读
C语言中对数容字的统计:可以通过循环数组的方式去一个一个的比较数字的大小,然后进行统计。首先可以通过循环的方式读取每个数字,然后存到数组中。把数组传入到fun函数,在循环数组对每个数字进行比较统计。
5. 编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。要求:①定义并使用自定义函数
如图
//编程实现:从键盘输入10个学生的成绩,统计并输出80分以上学生的人数。
//要求:①定义并使用自定义函数intfun(floatarr[],intn)实现统计80分以上人数的功能。
//②输入输出功能由主函数实现。
//(思考:①如何统计不及格学生的人数。②如何求出平均分
#include<stdio.h>
#include<malloc.h>
typedefstructfun_Total{
intgoodNUM; //80分以上人数
intfailNUM; //不及格人数
floatave; //平均分
}fun_Total;
fun_Total*fun(floatarr[],intn)
{
inti;
fun_Total*R=(fun_Total*)malloc(sizeof(fun_Total));
R->goodNUM=0;R->failNUM=0;R->ave=0;
for(i=0;i<n;i++){
R->ave+=arr[i];
if(arr[i]>80)R->goodNUM++; //80以上即>80
elseif(arr[i]<60)R->failNUM++;
}
R->ave/=n;
returnR;
}
voidmain()
{
inti=0,n=10;
floatarr[10];
fun_Total*RT;
printf("请输入学生的分数(按回车完成每个人的成绩输入)
");
for(i=0;i<n;i++){
printf("第%d名学生分数=",i+1);
scanf("%f",&arr[i]);
if(arr[i]>100||arr[i]<0)
{
printf("输入非法! ");
i--;
}
}
RT=fun(arr,n);
printf("
80分以上的学生有%d人
",RT->goodNUM);
printf("
不及格的学生有%d人
",RT->failNUM);
printf("
平均分为%f
",RT->ave);
free(RT);
}
6. 6.编写程序,由键盘任意输入10个学生的成绩,分别统计各分数段的百分比。
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int i,a[10];
float b,c,n,e,x;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
b=0;
c=0;
n=0;
e=0;
x=0;
for(i=0;i<10;i++)
{
if(a[i]>=90)b++;
else if(a[i]>=80 && a[i]<90)c++;
else if(a[i]>=70 && a[i]<80)n++;
else if(a[i]>=60 && a[i]<70)e++;
else
x++;
}
b=0.1f*b;
c=0.1f*c;
n=0.1f*n;
e=0.1f*e;
x=0.1f*x;
printf("优、复良、中制、及格、不及格的人数所占比例分别为;%f,%f,%f,%f,%f\n",b,c,n,e,x);
system("pause");
return 0;
}
7. c语言从键盘输入10个学生的成绩,建立一个一维数组,求学生的平均成绩
#include<stdio.h>
void main(){
float result[10],avg=0,sum=0;
int i=0;
for(i=0;i<10;i++){
printf("请输入第%d个学生的成绩:回",(i+1));
scanf("%f",&result[i]);
while(result[i]<0){
printf("成绩不能小于0,请重新输入");
printf("请输入第%d个学生的成绩:",(i+1));
scanf("%f",&result[i]);
if(result[i]>0){
sum+=result[i];
continue;
}
}
sum+=result[i];
}
avg = sum / 10;
printf("这10个学生的平答均成绩是:%f",avg);
}
8. C语言编程,从键盘输入10个学生的成绩,试统计出他们的成绩总和及平均值
#include <stdio.h>
#define MAX 10
struct student {
char no[10];
char name[10];
float score[3];
}stu[MAX];
float ave_course[3] = {0};
float ave_student[MAX] = {0};
int max_ave_i = 0; // 存储平均分最高的学生索引
int max_course_i[3] = {0}; //存储单科分数,最高的学生索引
// 录入学生成绩
void input(int n) {
int i;
for(i=0; i<n; i++) {
scanf("%s %s", stu[i].no,stu[i].name);
scanf("%f %f %f", &stu[i].score[0], &stu[i].score[1], &stu[i].score[2]);
}
}
// 计算平均成绩
void average(int n){
int i,j;
float max_ave = 0.0f;
float max_course[3] = {0};
// 计算每门课的平均成绩
for(i=0; i<n; i++) {
for(j=0; j<3; j++) {
ave_course[j] += stu[i].score[j];
if(max_course[j]<stu[i].score[j]){
max_course[j]<stu[i].score[j];
max_course_i[j] = i;
}
}
}
for(j=0; j<3; j++) {
ave_course[j] /= n;
}
// 计算每个学生的平均成绩
for(i=0; i<n; i++) {
for(j=0; j<3; j++) {
ave_student[i] += stu[i].score[j];
}
ave_student[i] /= 3;
if(max_ave < ave_student[i]) {
max_ave = ave_student[i];
max_ave_i = i;
}
}
}
void main () {
int i,j;
printf("请输入学生的学号 姓名 语文 数学 英语");
input(MAX);
average(MAX);
printf("\n课程的平均成绩是: %6.2f %6.2f %6.2f\n",ave_course[0],ave_course[1],ave_course[2]);
printf("\n学生的平均成绩是: \n");
for(i=0; i<MAX; i++) {
printf(" %s %s %6.2f\n", stu[i].no, stu[i].name, ave_student[i]);
}
printf("平均分,最高的学生:\n");
printf(" 学号=%s, 姓名=%s, 平均分=%6.2f:\n", stu[max_ave_i].no, stu[max_ave_i].name, ave_student[max_ave_i]);
printf("语文,最高分的学生:\n");
i=max_course_i[0];
printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[0]);
printf("数学,最高分的学生:\n");
i=max_course_i[1];
printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[1]);
printf("英语,最高分的学生:\n");
i=max_course_i[2];
printf(" 学号=%s, 姓名=%s, 成绩=%6.2f:\n", stu[i].no, stu[i].name, stu[i].score[2]);
getchar();
getchar();
}
9. c语言。从键盘输入10个学生成绩,求最高和最低分
这个同学.
代码我就不给你了但是我可以给你把思路理一下
首先
定义从键盘接受的数组.
然后通过循环当然循环变量就是这个数组的长度.
可在外部定义一个最大和最小数
在循环中判断如果当前循环的这个数大则直接给大的赋值
如果小就给小的赋值.
打印输出就好.
10. 编程实现:从键盘输入10个学生的成绩,计算出平均分,并输出低于平均分的学生成绩大神们帮帮忙
#include<stdio.h>
int main()
{
int i,j;
float students[10];
float sum=0,average;
for(i=0;i<10;i++)
{
printf("请输入的学生的成绩:");
scanf("%f",&students[i]);
sum=sum+students[i];
}
average=sum/10;
for(i=0;i<10;i++)
if (students[i]<average)
printf("这几个同学低于平均分的成绩为为:%f ",students[i]);
printf("平均成绩为:%.2f ",average);
return 0;
}
(10)从键盘输入10个学生的成绩扩展阅读:
int a[10]; 说明整型数组a,有10个元素。若要表示第10个元素,则使用a[9]。第一个则是a[0]。
float b[10],c[20]; 说明实型数组b,有10个元素,实型数组c,有20个元素。
char ch[20]; 说明字符数组ch,有20个元素。
特点:
1,数组是相同数据类型的元素的集合。
2,数组中的各元素的存储是有先后顺序的,它们在内存中按照这个先后顺序连续存放在一起。
3,数组元素用整个数组的名字和它自己在数组中的顺序位置来表示。例如,a[0]表示名字为a的数组中的第一个元素,a[1]代表数组a的第二个元素,以此类推。