结构数组的使用-PTA

BUPT大一上习题

北邮VC++实验题 结构数组使用

题目描述

编写一个记录5个学生的姓名、性别、年龄和学号的程序,要求使用结构数组表示学生信息,用for循环获得键盘输入的学生记录的数据,所有数据输入完毕后,将5个学生的信息在屏幕上输出。

输入格式

按表格行列格式输出,每行输出一个学生的信息,按照姓名、性别、年龄、学号的顺序,各列信息左对齐,各信息占10位。

样例 #1

样例输入 #1

1
2
3
4
5
John male 18 2016211001
Kim  male 18 2016211002
David male 18  2016211003
Marry  female 18 2016211004
Anna  female 18  2016211005

样例输出#1

1
2
3
4
5
John      male      18        2016211001
Kim       male      18        2016211002
David     male      18        2016211003
Marry     female    18        2016211004
Anna      female    18        2016211005

样例 #2

样例输入 #2

1
2
3
4
5
a male 18 001
b female 19 002
c male 20 003
d female 21 004
e male 22 005

样例输出 #2

1
2
3
4
5
a         male      18        001       
b         female    19        002       
c         male      20        003       
d         female    21        004       
e         male      22        005       

提示

采用格式输出,程序中包含#include,并使用setiosflags(ios::left)和setw(n)。

解答

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <cstring>
#include <cstdio>
#include <iomanip>
using namespace std;
int main()
{
    struct stu{
        char name[10]={0};
        char sex[10]={0};
        int age;
        char number[10]={0};
    }student[5];
    for(int i=0;i<5;i++)
        scanf("%s %s %d %s",&student[i].name,&student[i].sex,&student[i].age,&student[i].number);
    for(int i=0;i<5;i++)
    {
        /*printf(""%-10s%-10s%-10d%-10s",x,x,x,x);*/
        cout<<setiosflags(ios::left);
        cout<<setw(10)<<student[i].name<<setw(10)<<student[i].sex<<setw(10)<<student[i].age<<setw(10)<<student[i].number<<endl;
    }
    return 0;
}
Progress Infinite!
使用 Hugo 构建
主题 StackJimmy 设计