C语言中怎么求百分比?

比如输入5个学生的成绩,怎么求及格率呢?下边是求不及格个数、及格率和平均分。

main()
{
int score[5];
int a1(int b[],int c);
int i;
for(i=0;i<5;i++)
{
scanf("%d",&score[i]);
}
a1(score,5);

}

int a1(int b[],int c)
{
int x=0;
int y,z=0,o;
int sum=0;

/*bu ji ge shu:*/
for(y=0;y<5;y++)
{
if(b[y]<60) x++;
}
printf("bu ji ge shu:%d",x);
printf("\n");

/*ji ge lv:*/
y=c-x;
z=(y%c)*100; /*这里用/和%,结果都不正确,应该怎么写?*/
printf("ji ge lv:%d %",z);
printf("\n");

/*ping jun feng*/
for(y=0;y<5;y++)
{
sum=sum+b[y];
}
o=sum/c;
printf("ping jun feng:%d",o);
printf("\n");
}

按照百分比的定义,要求a占b的百分比时,只需要a/b*100即可。

需要注意的是,百分比的结果为实数,需要用浮点数类型(float或double)来储存,当操作数a,b均为整型时,需要先转为浮点型再进行操作,否则会出错。

以输入两个整型数a,b,求a占b的百分比并输出为例,给出参考代码如下:

int a,b;
float r;
scanf("%d%d",&a,&b);//输入a和b。
r = (float)a/b*100;//转为浮点数并计算百分比。
printf("a占b的百分比为%.2f%%\n", r);//输出结果,保留两位小数。需要注意的是,要输出%需要写成%%的形式。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-06-26
main()
{
int score[5];
int a1(int b[],int c);
int i;
for(i=0;i<5;i++)
{
scanf("%d",&score[i]);
}
a1(score,5);

}

int a1(int b[],int c)
{
int x=0;
//int y,z=0,o;
int y0;
double z=0,o=0;
int sum=0;

/*bu ji ge shu:*/
for(y=0;y<5;y++)
{
if(b[y]<60) x++;
}
printf("bu ji ge shu:%d",x);
printf("\n");

/*ji ge lv:*/
y=c-x;
z=(y/c)*100; /*这里用/和%,结果都不正确,应该怎么写?*/
printf("ji ge lv:%.2f",z);
printf("\n");

/*ping jun feng*/
for(y=0;y<5;y++)
{
sum=sum+b[y];
}
o=sum/c;
printf("ping jun feng:%.2f",o);
printf("\n");
}本回答被提问者采纳
第2个回答  2007-06-26
因为定义的都是整型变量所以不对
而且只能用/,%是求余,要强制转换一下
z=float(y)/float(c)*100
相似回答