描述
现有有N个学生的数据记录,每个记录包括学号、姓名、三科成绩。编写一个函数input,用来输入一个学生的数据记录。编写一个函数print,打印一个学生的数据记录。在主函数调用这两个函数,读取N条记录输入,再按要求输出。N<100。
输入
学生数量N占一行每个学生的学号、姓名、三科成绩占一行,空格分开。
输出
每个学生的学号、姓名、三科成绩占一行,逗号分开。
输入样例 1
2 a100 zhblue 70 80 90 b200 newsclan 90 85 75
输出样例 1
a100,zhblue,70,80,90 b200,newsclan,90,85,75
输入样例 2
3 01 guo 100 100 90 02 chen 60 70 65 03 fang 80 75 65
输出样例 2
01,guo,100,100,90 02,chen,60,70,65 03,fang,80,75,65
#include
#include
using namespace std;
int main()
{
int N;
cin >> N;
string student[100][5];
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= 5; j++)
{
cin >> student[i][j];
}
}
for (int i = 1; i <= N; i++)
{
for (int j = 1; j <= 5; j++)
{
cout<
#include
#include
using namespace std;
void input(int n,string student[][5])
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= 5; j++)
{
cin >> student[i][j];
}
}
}
void print(int n, string student[][5])
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= 5; j++)
{
cout<> N;
string student[100][5];
input(N, student);
print(N, student);
return 0;
}
#include
using namespace std;
struct Student
{
char xvehao[10];
char name[20];
int score[3];
};
int main()
{
int N;
cin >> N;
Student student[100];
for (int i = 1; i <= N; i++)
{
cin >> student[i].xvehao;
cin >> student[i].name;
for (int j = 0; j < 3; j++)
{
cin >> student[i].score[j];
}
}
for (int i = 1; i <= N; i++)
{
cout << student[i].xvehao << ",";
cout << student[i].name << ",";
for (int j = 0; j < 3; j++)
{
cout<< student[i].score[j];
if (j != 2)cout << ",";
}
cout << endl;
}
return 0;
}
#include
using namespace std;
struct Student
{
char xvehao[10];
char name[20];
int score[3];
};
void input(int n, Student student[])
{
for (int i = 1; i <= n; i++)
{
cin >> student[i].xvehao;
cin >> student[i].name;
for (int j = 0; j < 3; j++)
{
cin >> student[i].score[j];
}
}
}
void print(int n, Student student[])
{
for (int i = 1; i <= n; i++)
{
cout << student[i].xvehao << ",";
cout << student[i].name << ",";
for (int j = 0; j < 3; j++)
{
cout<< student[i].score[j];
if (j != 2)cout << ",";
}
cout << endl;
}
}
int main()
{
int N;
cin >> N;
Student student[100];
input(N, student);
print(N, student);
return 0;
}
①:二维数组的传参格式
函数声明与定义中:
void function(int a[m][n]); //函数声明
void function(int a[ ][n]); //不论多少维数组,第一维都可省略。
//凭什么第二维就不可省略呢?由编译器的寻址方式决定。
函数调用中:
function(a); //函数调用 实参直接写数组名!数组名!(重点)
//(注意)function(a[m][n])或function(a[ ][n])都不可以!
该部分选自[C语言]二维数组传参的格式(详细+总结)_c语言二维数组传参_思简行繁乃成的博客-CSDN博客
②:结构体数组
一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组:每个数组元素都是一个结构体类型的数据,它们都包括各个成员项。