#include <iostream>
#include <iomanip>
using namespace std;
int total1=0,total2=0;
struct Provinces
{
string Province;
int Diagnosis;
int Cured;
int Dead;
};
void Input(Provinces ProvincesList[],int & total)
{
int i=1;
cout<<"请录入34个省级行政区的疫情信息:\n省 确诊 治愈 死亡"<<endl;
while(1)
{
cout<<"第"<<i<<"个:"<<endl;
cin>>ProvincesList[i].Province;
cin>>ProvincesList[i].Diagnosis>>ProvincesList[i].Cured>>ProvincesList[i].Dead;
total=total+ProvincesList[i].Diagnosis;
total1=total1+ProvincesList[i].Cured;
total2=total2+ProvincesList[i].Dead;
i++;
if(i>34)
{
cout<<"录入完毕"<<endl;
break;
}
}
}
void Output(Provinces ProvincesList[],int total)
{
cout<<"--------------------------------------------------------"<<endl;
cout<<"全国\n确诊:"<<total<<"\n治愈:"<<total1<<"\n死亡:"<<total2<<"\n治愈率:"<<setiosflags(ios::fixed)<<setprecision(2)<<(double)total1/total*100<<"%"<<"\n死亡率:"<<(double)total2/total*100<<"%"<<endl;
cout<<"--------------------------------------------------------"<<endl;
cout<<"省\t确诊\t治愈\t死亡\t占比\t治愈率\t死亡率"<<endl;
int i=1;
while(1)
{
cout<<ProvincesList[i].Province<<"\t"<<ProvincesList[i].Diagnosis<<"\t"<<ProvincesList[i].Cured<<"\t"<<ProvincesList[i].Dead<<"\t"<<setiosflags(ios::fixed)<<setprecision(2)<<(double)ProvincesList[i].Diagnosis/total*100<<"%\t"<<(double)ProvincesList[i].Cured/ProvincesList[i].Diagnosis*100<<"%\t"<<(double)ProvincesList[i].Dead/ProvincesList[i].Diagnosis*100<<"%"<<endl;
i++;
if(i>34)
{
cout<<"--------------------------------------------------------"<<endl;
break;
}
}
}
int main()
{
Provinces ProvincesList[100];int total=0;
Input(ProvincesList,total);
Output(ProvincesList,total);
}
总结:
#include <iomanip>
struct Provinces
{
};//结构体 分号
void Input(Provinces ProvincesList[],int & total)
//数组作为函数参数无需引用&,因为数组名就是地址,无需取地址
setiosflags(ios::fixed)<<setprecision(2)<<(double)total1/total*100<<"%"