-题目不难做,问题是如何处理姓名中间的空格,如果不用到getline函数,你就要写上一大段代码去处理空格,(QAQ),以下就是作死的代码,虽然AC了,但emmmm
#include <bits/stdc++.h>
using namespace std;
class Student {
public:
void input(){
int i=0,count=0,j,flag=0;
while(cin>>name[i]){
for(j=0;name[i][j]!='\0';j++){
if(name[i][j]==',')
count++;
if(count==3){
int k=0,d=0;
for(int n=j+1;name[i][n]!='\0';n++){
if(name[i][n]==','){
k++;
d=0;
continue;
}
grade[k][d++]=name[i][n];
}
flag=1;
break;
}
}
i++;
if(flag)
break;
}
m=i;
}
void calculate(){
double sum=0;
for(int i=0;i<4;i++)
sum+=atof(grade[i]);
average_grade=sum/4;
}
void output(){
int count=0,flag=0;
if(m==1){
for(int i=0;name[0][i]!='\0';i++){
cout<<name[0][i];
if(name[0][i]==',')
count++;
if(count==3)
break;
}
}
else{
for(int i=0;i<m;i++){
if(i<m-1)
cout<<name[i]<<' ';
else{
for(int j=0;name[i][j]!='\0';j++){
cout<<name[i][j];
if(name[i][j]==',')
count++;
if(count==3){
flag=1;
break;
}
}
if(flag)
break;
}
}
}
cout<<average_grade<<endl;
}
private:
int m;
char name[20][25];
char grade[4][3];
double average_grade;
};
int main() {
Student student; // 定义类的对象
student.input(); // 输入数据
student.calculate(); // 计算平均成绩
student.output(); // 输出数据
}
-接下来是大佬的代码:-)
-没有对比就不会有智商的碾压,好了,家教去了(๑•́ ₃ •̀๑)