C++请问如何使输出的结果保留一位小数 如何求得百分比 如何才可以实现在输入时在数值后面加上逗号呢?

在这个c++程序#include<iostream.h>#include<iomanip.h>voidStat(inta[10]);voidpaixu(intb[10])... 在这个c++程序
#include <iostream.h>
#include <iomanip.h>
void Stat(int a[10]);
void paixu(int b[10]);
void main()
{
int i,Score[10];
cout<<"请输入10名学员的成绩(输入格式为:80,90,66,78,34,60,99,67,89,67)"<<endl;
for(i=0;i<10;i++)
cin>>Score[i];
cout<<endl;
Stat(Score); //函数调用
paixu(Score); //函数调用
}

void Stat(int a[10])
{
int max=0,min,i;
float pjf,sum=0;
for(i=0;i<10;i++)
sum+=a[i];
cout<<"总分为:"<<sum<<endl;
pjf=float(sum/10); //pif:平均分
cout<<"平均分为:"<<setiosflags(ios::showpoint)<<setprecision(3)<<pjf<<endl;
//强制显示小数点符号 设显示小数精度为3位
for(i=0;i<10;i++)
if(max<a[i])
max=a[i];
min=a[0];
for(i=0;i<10;i++)
if(min>a[i])
min=a[i];
cout<<"最高分为:"<<max<<endl;
cout<<"最低分为;"<<min<<endl;
}

void paixu(int b[10])
{
int i=0,j=0,k=0,l=0,i1,j1,k1,l1,g;
for(g=0;g<10;g++)
{if(b[g]>=85)
i++;
else
if(b[g]>=70)
j++;
else
if(b[g]>=60)
k++;
else
l++;
}
i1=i*10; j1=j*10; k1=k*10; l1=l*10; //因为不懂得如何求百分比所以乱来的
cout<<"根据分数段统计学员成绩:"<<endl;
cout<<"85分以上的:"<<" "<<i<<"名学员 占总学员数的"<<i1<<"%"<<endl;
cout<<"70-84分的:"<<" "<<j<<"名学员 占总学员数的"<<j1<<"%"<<endl;
cout<<"60-69分的:"<<" "<<k<<"名学员 占总学员数的"<<k1<<"%"<<endl;
cout<<"60分以下的:"<<" "<<k<<"名学员 占总学员数的"<<l1<<"%"<<endl;

请问:如何才可以使 平均分 输出的结果是保留一位小数的(应该有比我上面用到的更正确地方法吧!)
再问:如何才可以使最后的i1,j1,k1,l1(即学员数量(10名)的百分比)不是用我这个愚蠢的方法,而是真正的实现百分比的输出?
还有,如何才可以实现在输入时在数值后面加上逗号呢即(格式为:80,90,66,78,34,60,99,67,89,67)这样的格式?
可以的话麻烦给加上点较详细的说明吧。多谢咯!!
展开
 我来答
在世贸天阶灌篮的高飞燕草
2007-12-23 · TA获得超过2378个赞
知道大有可为答主
回答量:2070
采纳率:0%
帮助的人:2016万
展开全部
#include <iostream.h>
#include <iomanip.h>
void Stat(int a[10]);
void paixu(int b[10]);
void main()
{
int i,Score[10];
cout<<"请输入10名学员的成绩"<<endl;
for(i=0;i<10;i++)
{
cout<<"请输入学员 " << i+1 << " 的成绩:";
cin>>Score[i];
}
cout<<endl;
Stat(Score); //函数调用
paixu(Score); //函数调用
}

void Stat(int a[10])
{
int max=0,min,i;
float pjf,sum=0;
for(i=0;i<10;i++)
sum+=a[i];
cout<<"总分为:"<<sum<<endl;
pjf=float(sum/10); //pif:平均分
cout<<"平均分为:"<<setiosflags(ios::showpoint)<<setprecision(3)<<pjf<<endl;
//强制显示小数点符号 设显示小数精度为3位
for(i=0;i<10;i++)
if(max<a[i])
max=a[i];
min=a[0];
for(i=0;i<10;i++)
if(min>a[i])
min=a[i];
cout<<"最高分为:"<<max<<endl;
cout<<"最低分为;"<<min<<endl;
}

void paixu(int b[10])
{
int i=0,j=0,k=0,l=0,i1,j1,k1,l1,g;
for(g=0;g<10;g++)
{if(b[g]>=85)
i++;
else
if(b[g]>=70)
j++;
else
if(b[g]>=60)
k++;
else
l++;
}
i1=i*10; j1=j*10; k1=k*10; l1=l*10;
cout<<"根据分数段统计学员成绩:"<<endl;
cout<<"85分以上的:"<<" "<<i<<"名学员 占总学员数的"<<i1<<"%"<<endl;
cout<<"70-84分的:"<<" "<<j<<"名学员 占总学员数的"<<j1<<"%"<<endl;
cout<<"60-69分的:"<<" "<<k<<"名学员 占总学员数的"<<k1<<"%"<<endl;
cout<<"60分以下的:"<<" "<<l<<"名学员 占总学员数的"<<l1<<"%"<<endl;
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式