这道题目关于字符串的题目,当时在处理保留小数点后2位卡住了,在c++中
cout <<setprecision(2) <<std::fixed <<x <<endl;
我想用stringstream stream 进行保存,然后。。。其实在c中用sprintf(out,"%s %.2f",name,avg);
第二个教训要看好题目
对数据转换问题上 用sprintf sscanf好处理
float sum(int score[],int n) { float d=0; for(int i=0;i<n;i++) d+=score[i]; return d; } int find_max(int score[],int n) { int max2=0; for(int i=0;i<n;i++) if(max2<score[i]) max2=score[i]; return max2; } int find_min(int score[],int n) { int min2=11; for(int i=0;i<n;i++) if(min2>score[i]) min2=score[i]; return min2; } void GetResult(char* pInput[], int Num, char *pResult) { int score[7]={0}; char name[31]={'\0'}; char out[40]={'\0'}; for(int i=0;i<Num;i++) { string src=pInput[i]; stringstream stream(src); for(int i=0;i<7;i++) { stream>>score[i]; } stream>>name; int sum2=sum(score,7); int min2=find_min(score,7); int max2=find_max(score,7); float avg=(sum2-min2-max2)*1.0/5; sprintf(out,"%s %.2f",name,avg); sprintf(pResult,"%s%s\n\0",pResult,out); } int len=strlen(pResult); pResult[len-1]='\0'; cout<<"pResult= "<<pResult<<endl; }
时间: 2024-12-20 15:16:37