C语言,输入一批学生的成绩,统计其中80分以上学生所占的百分比
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言,输入一批学生的成绩,统计其中80分以上学生所占的百分比相关的知识,希望对你有一定的参考价值。
参考技术A C语言,输入一批学生的成绩,统计其中80分以上学生所占的百分比 #include<sttdio.h>main
int i,j ,sum=0,score[n];sum表示分数大于80的学生数,n表示学生总数,可改变
for(i=0;i<n;i++)
scanf("%d",&score[i]);
for(j=0;j<n;j++)
if(score[j]>=80)sum++;
printf("%d\n",sum/n);
程式设计:输入80个学生的c语言考试成绩,统计不及格人数,并计算所占百分比
#include <stdio.h>int main() int score[80]=0,; int counter,status=0,flag; for(counter=0;counter<80;) char c; printf("请输入第%d位学生的c语言考试成绩:",counter+1); flag=scanf("%d",score+counter); if(flag!=1 || flag==EOF) while((c=getchar())!='\n'&&c!=EOF) ; printf("无效输入!\n"); continue; if(score[counter]<60) ++status; ++counter; printf("不及格人数:%d,比率:%.5lf\n",status,status/80.0);
用c语言程式设计 统计输入的一批学生的成绩,去掉最高分,最低分,求平均分 怎么做啊
#include "stdio.h"
#define N 6
void main()
float score[N] = 22.3, 33.2, 23.2, 77.3, 88.3, 88.5;
float sum = score[0];
float min = score[0];
float max = score[0];
int i = 1;
while(i < N)
if(score[i] < min ) min = score[i];
else if(score[i] > max) max = score[i];
sum += score[i];
i++;
printf("average : %f\n", (sum - (min+max)) / (i-2));
2楼所言差矣
程式设计,回圈输入5个学生的c语言课的成绩,统计分数大于80分的学生的去人数
#include <stdio.h>int main() int t=0; int s; int i; for(i = 0; i < 5; i ++) scanf("%d",&s); if(s>80) t++; printf("%d\n", t); return 0;
用C语言统计若干学生的五门课程成绩存入对应名字:平均分,总分,名次85分以上百分比,以学生名字为选单
#include<stdio.h>
#include<stdlib.h>
#define MAX_STUDENT 100
struct student
char name[50];
float s1;
float s2;
float s3;
float s4;
float s5;
float average;
float total;
int rank;
;
struct student stu[MAX_STUDENT];
int cmp(const void *a, const void *b)
return (int)((*(struct student*)b).total) - (int)((*(struct student*)a).total);
int main()
int i, snum, gt85_count1, gt85_count2, gt85_count3, gt85_count4, gt85_count5, gt85_countaverage;
FILE*infile;
char s[256];
snum=0;
gt85_count1 = gt85_count2 = gt85_count3 = gt85_count4 = gt85_count5 = gt85_countaverage = 0;
infile=(FILE*)fopen("data.txt", "r+");
if(infile==NULL)
printf("Open file error or it does not exist!\n");
exit(0);
while(fgets(s, 256, infile))
sscanf(s, "%s%f%f%f%f%f", &stu[snum].name, &stu[snum].s1, &stu[snum].s2,
&stu[snum].s3, &stu[snum].s4, &stu[snum].s5);
stu[snum].total = stu[snum].s1 + stu[snum].s2 + stu[snum].s3 + stu[snum].s4 + stu[snum].s5;
stu[snum].average = stu[snum].total/5;
if(stu[snum].s1>=85.0)gt85_count1++;
if(stu[snum].s2>=85.0)gt85_count2++;
if(stu[snum].s3>=85.0)gt85_count3++;
if(stu[snum].s4>=85.0)gt85_count4++;
if(stu[snum].s5>=85.0)gt85_count5++;
if(stu[snum].average>=85.0)gt85_countaverage++;
snum++;
qsort(stu, snum, sizeof(struct student), cmp);
for(i=0;i<snum;i++)
stu[i].rank=i+1;
printf("student rank average total\n");
for(i=0;i<snum;i++)
printf("%-20s%5d%10.1f%10.1f\n", stu[i].name, stu[i].rank, stu[i].average, stu[i].total);
printf("\ncourse1>=85(%%):%.2f\tcourse2>=85(%%):%.2f\tcourse3>=85(%%):%.2f\n\
course4>=85(%%):%.2f\tcourse5>=85(%%):%.2f\taverage>=85(%%):%.2f\n", gt85_count1*100.0/snum, gt85_count2*100.0/snum, gt85_count3*100.0/snum,
gt85_count4*100.0/snum, gt85_count5*100.0/snum, gt85_countaverage*100.0/snum);
return 0;
输入档案data.txt格式如下:
aaa 70.0 80.0 90.0 100 85
b 70 70 70 70 70
c 75 65 55 85 86
e 85 75 65 95 100
f 85 95 100 65 62
g 99 99 99 99 99
输入5个学生的成绩 并求和 c语言
#include <stdio.h>int main() int sc, sum = 0, i; for (i = 0; i < 5; ++i) scanf ("%d", &sc); sum += sc; printf ("%d\n", sum); return 0;
c语言有50个学生,要求输出成绩在80分以上学生的学号和成绩拜托各位了 3Q
可以用一个二维阵列,储存学号和成绩
有50个学生,要求输出成绩在80分以上的学生的学号和成绩。n表示学生学号,g表示学生成绩。用c语言
得到如下程式码:
#include<stdio.h>int main() int n[50], g[50]; int i; for (i = 0; i < 50; ++i) printf ("请输入第%d个学生的学号和成绩:", i+1); scanf("%d%d", &n[i], &g[i]); for (i = 0; i < 50; ++i) if (g[i] >= 80) printf ("%d %d\n", n[i], g[i]); return 0;
用C语言设计一学生成绩管理系统,要求: 1、加入一个学生的成绩 2、删除一个学生的成绩 3、求各学生的总分
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#define MAXLEN 100
#define Null 0
typedef struct node
int num; 学号
char name[MAXLEN]; 姓名
int score; 分数
struct node *next; 指标域
list;
list *creat() 新增成绩
list *head,*p,*r;
int i,n; n 为学生人数
head=(list *)malloc(sizeof(list));
head->next=Null;
r=head;
printf("请输入学生人数.\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
p=(list *)malloc(sizeof(list));
printf("请输入学生学号:\n");
scanf("%d",&p->num);
printf("请输入学生姓名:\n");
scanf("%s",&p->name);
printf("请输入学生成绩:\n");
scanf("%d",&p->score);
p->next=Null;
r->next=p;
r=r->next;
return (head);
list *del (list *h) 删除成绩
int k; 要删除的学生学号
list *p,*q; 为什么要两个指标呢?
q=h;
p=h->next;
printf("请输入待删除的学生学号:\n");
scanf("%d",&k);
while (p && p->num!=k)
q=p;
p=p->next;
if(p)
q->next=p->next;
free(p);
else
printf("没有此学生的记录,无法删除!\n");
return (h);
void output(list *h) 输出成绩
list *p;
printf("学号\t姓名\t成绩\n");
p=h->next;
while (p!=NULL)
printf("%d\t%s\t%d\n",p->num,p->name,p->score);
p=p->next;
void main()
list *p;
int k; 控制回圈的标志
while (1)
printf(" ---------------------------------------\n");
printf(" | 学生成绩管理系统 |\n");
printf(" ---------------------------------------\n");
printf(" | 1. 登记成绩 |\n");
printf(" | 2. 删除成绩 |\n");
printf(" | 3. 输出所有学生成绩 |\n");
printf(" | 0. 退出系统 |\n");
printf(" ---------------------------------------\n");
printf("请输入你的选择:\n");
scanf("%d",&k);
switch(k)
case 1: p=creat(); break;
case 2: p=del(p); break;
case 3: output(p); break;
case 0: exit(0);
default : printf("选择错误,重新开始!\n");
aess统计入学分数600分以上学生的数量
这个问题要有具体的资料结构才好回答。请参阅下面例子:
假设有学生(学号,姓名,性别)和入学登记(学号,入学年度,入学分数)两表通过学号实施一对多参照完整性。现在要求写出能列出入学分数超过600或以上学生的学号、姓名和入学分数的SQL语句
select 学生.学号,学生.姓名,入学登记.入学分数 from 学生,入学登记 where 学生.学号= 入学登记.学号 and 入学登记.入学分数>=600;
实验3-7 统计学生成绩 (15分)
本题要求编写程序读入N个学生的百分制成绩,统计五分制成绩的分布。百分制成绩到五分制成绩的转换规则:
- 大于等于90分为A;
- 小于90且大于等于80为B;
- 小于80且大于等于70为C;
- 小于70且大于等于60为D;
- 小于60为E。
输入格式:
输入在第一行中给出一个正整数N(≤1000),即学生人数;第二行中给出N个学生的百分制成绩,其间以空格分隔。
输出格式:
在一行中输出A、B、C、D、E对应的五分制成绩的人数分布,数字间以空格分隔,行末不得有多余空格。
输入样例:
7
77 54 92 73 60 65 69
输出样例:
1 0 2 3 1
#include<stdio.h>
int main()
{
int n;
int x=0,b=0,c=0,d=0,e=0;
scanf("%d",&n);
if(n>0&&n<=1000)
{
int a[n],i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
if(a[i]>=90)
{
x++;
}else if(a[i]>=80)
{
b++;
}else if(a[i]>=70)
{
c++;
}else if(a[i]>=60)
{
d++;
}else
{
e++;
}
}
printf("%d %d %d %d %d",x,b,c,d,e);
}
return 0;
}
以上是关于C语言,输入一批学生的成绩,统计其中80分以上学生所占的百分比的主要内容,如果未能解决你的问题,请参考以下文章