c语言编程,输入学号和成绩,90到100为优秀,80到89为良好,70到79为中等,60到69及格,0到59不及格
求各阶段人数及所占百分比我的程序如下:#include<stdio.h>#defineN30voidReadScore(intscore[],longnum[],intn...
求各阶段人数及所占百分比
我的程序如下:
#include <stdio.h>
#define N 30
void ReadScore(int score[],long num[],int n);
void Stats(int score[],int n);
int main()
{
int score[N],n;
long num[N];
printf("input n:");
scanf("%d",&n);
ReadScore(score,num,n);
Stats(score,n);
return 0;
}
void ReadScore(int score[],long num[],int n)
{
int i=-1;
do{
i++;
printf("input student's ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}while(i<n-1);
}
void Stats(int score[],int n)
{
int i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
float t1,t2,t3,t4,t5;
for (i=0;i<n;i++)
{
if(score[i]>=90&&score[i]<=100)
{
sum1=sum1+1;
}
if(score[i]>=80&&score[i]<=89)
{
sum2=sum2+1;
}
if(score[i]>=70&&score[i]<=79)
{
sum3=sum3+1;
}
if(score[i]>=60&&score[i]<=69)
{
sum4=sum4+1;
}
if(score[i]>=0&&score[i]<=59)
{
sum5=sum5+1;
}
}
t1=(float)(100*sum1)/n;
t2=(float)(100*sum2)/n;
t3=(float)(100*sum3)/n;
t4=(float)(100*sum4)/n;
t5=(float)(100*sum5)/n;
printf("\n优秀人数为%d,所占比例%f%s\n",sum1,t1,"%");
printf("良好人数为%d,所占比例%f%s\n",sum2,t2,"%");
printf("中等人数为%d,所占比例%f%s\n",sum3,t3,"%");
printf("及格人数为%d,所占比例%f%s\n",sum4,t4,"%");
printf("不及格人数为%d,所占比例%f%s\n",sum5,t5,"%");
}
但每个阶段人数总是0,百分比也为0,请高手指导一下。 展开
我的程序如下:
#include <stdio.h>
#define N 30
void ReadScore(int score[],long num[],int n);
void Stats(int score[],int n);
int main()
{
int score[N],n;
long num[N];
printf("input n:");
scanf("%d",&n);
ReadScore(score,num,n);
Stats(score,n);
return 0;
}
void ReadScore(int score[],long num[],int n)
{
int i=-1;
do{
i++;
printf("input student's ID and score:");
scanf("%ld%d",&num[i],&score[i]);
}while(i<n-1);
}
void Stats(int score[],int n)
{
int i,sum1=0,sum2=0,sum3=0,sum4=0,sum5=0;
float t1,t2,t3,t4,t5;
for (i=0;i<n;i++)
{
if(score[i]>=90&&score[i]<=100)
{
sum1=sum1+1;
}
if(score[i]>=80&&score[i]<=89)
{
sum2=sum2+1;
}
if(score[i]>=70&&score[i]<=79)
{
sum3=sum3+1;
}
if(score[i]>=60&&score[i]<=69)
{
sum4=sum4+1;
}
if(score[i]>=0&&score[i]<=59)
{
sum5=sum5+1;
}
}
t1=(float)(100*sum1)/n;
t2=(float)(100*sum2)/n;
t3=(float)(100*sum3)/n;
t4=(float)(100*sum4)/n;
t5=(float)(100*sum5)/n;
printf("\n优秀人数为%d,所占比例%f%s\n",sum1,t1,"%");
printf("良好人数为%d,所占比例%f%s\n",sum2,t2,"%");
printf("中等人数为%d,所占比例%f%s\n",sum3,t3,"%");
printf("及格人数为%d,所占比例%f%s\n",sum4,t4,"%");
printf("不及格人数为%d,所占比例%f%s\n",sum5,t5,"%");
}
但每个阶段人数总是0,百分比也为0,请高手指导一下。 展开
展开全部
按这个题的意思 应该在考你使用 switch() case 不过你这样写也可以 但麻烦了许多。
另外 这个程序没有问题 先输入n的个数 然后输入 ID 和分数时 中间要有空格 如:1 99
请采纳
另外 这个程序没有问题 先输入n的个数 然后输入 ID 和分数时 中间要有空格 如:1 99
请采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
没什么问题啊!你把void ReadScore(int score[],long num[],int n);
void Stats(int score[],int n);放进主函数中试试,我的机子上没问题
void Stats(int score[],int n);放进主函数中试试,我的机子上没问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询