注册 登录
编程论坛 C++教室

一道题,求改进

lowryfly 发布于 2013-01-23 21:36, 460 次点击
#include<iostream>
#include<string>
using namespace std;
struct Student
    {
        int num;
        string name;
        int score[3];
    }student[5];
    int t;
void prinf(Student student[t])
{
    cout<<student[t].num<<"   "<<student[t].name<<"   "<student[t].score[0]<<"   "<<
    student[t].score[1]<<"   "<<student[t].score[2]<<endl;   
}
int main()
{
    prinf(Student student[t]);
    for(int i=0;i<5;i++)
    {
     cout<<"请输入第"<<i+1<<"位学生信息"<<endl;
     cin>>student[i].num>>student[i].name;
     for(int j=0;j<3;j++)
     {cin>>student[i].score[j];}
    }
   
    cout<<"学号   姓名   数学   语文   英语"<<endl;
    for(int i=0;i<5;i++)
    {
      prinf(Student student[i]);
    }
}
编写一个函数,打印一个学生的成绩数组,主函数输入,用编写的函数输出
6 回复
#2
yuccn2013-01-24 12:12
把缩进调好点,比你现在的就是很大的改进了
#3
zklhp2013-01-24 12:15
程序代码:

#include<iostream>
#include<string>
using namespace std;
struct Student
{
        int num;
        string name;
        int score[3];
}student[5];
int t;
void prinf(Student student[t])
{
    cout<<student[t].num<<"   "<<student[t].name<<"   "<student[t].score[0]<<"   "<<
        student[t].score[1]<<"   "<<student[t].score[2]<<endl;  
}
int main()
{
    prinf(Student student[t]);
    for(int i=0;i<5;i++)
    {
        cout<<"请输入第"<<i+1<<"位学生信息"<<endl;
        cin>>student[i].num>>student[i].name;
        for(int j=0;j<3;j++)
        {cin>>student[i].score[j];}
    }
  
    cout<<"学号   姓名   数学   语文   英语"<<endl;
    for(int i=0;i<5;i++)
    {
        prinf(Student student[i]);
    }
}
    cout<<student[t].num<<"   "<<student[t].name<<"   "<student[t].score[0]<<"   "<<
        student[t].score[1]<<"   "<<student[t].score[2]<<endl;

为啥不写成两行呢
#4
lowryfly2013-01-24 18:31
回复 3楼 zklhp
没想到
#5
lowryfly2013-01-24 18:37
#include<iostream>
#include<string>
using namespace std;
struct Student
    {
        int num;
        string name;
        int score[3];
    }student[5];
    int t;
void prinf(Student student)
{
    cout<<student.num<<"   "<<student.name<<"   "<<student.score[0]<<"   "<<
    student.score[1]<<"   "<<student.score[2]<<endl;   
}
int main()
{
   
    for(int i=0;i<5;i++)
    {
     cout<<"请输入第"<<i+1<<"位学生信息"<<endl;
     cin>>student[i].num>>student[i].name;
     for(int j=0;j<3;j++)
     {cin>>student[i].score[j];}
    }
   
    cout<<"学号   姓名   数学   语文   英语"<<endl;
    for(int i=0;i<5;i++)
    {
      prinf(student[i]);
    }
}
成功了
#6
爱李春霞2013-01-24 23:03
可以了!但结构体中的string name上机的话会出错哈!因为这个定义c++编译系统一般读不懂的!用char name[30]
#7
lowryfly2013-01-24 23:06
回复 6楼 爱李春霞
嗯,谢谢
1