结构体中有一个int数组,怎么print每个数组元素
时间: 2023-06-02 15:03:18 浏览: 69
您可以使用循环遍历整个数组,并使用printf或cout打印每个元素。例如,假设结构体名为Test,包含一个名为array的int数组:
```
struct Test {
int array[10];
};
Test t;
for(int i=0; i<10; i++) {
printf("%d ", t.array[i]);
}
```
这将打印出数组中每个元素的值。
相关问题
用子函数来输出主函数中定义的结构体数组。
可以在主函数中定义一个结构体数组,然后编写一个子函数来输出这个数组中的每个元素。具体实现方法如下:
1. 在主函数中定义一个结构体数组,例如:
```
struct student {
char name[20];
int age;
float score;
};
struct student stu_array[3] = {
{"张三", 18, 90.5},
{"李四", 19, 85.0},
{"王五", 20, 92.5}
};
```
2. 编写一个子函数来输出这个数组中的每个元素,例如:
```
void print_stu_array(struct student *p, int n) {
int i;
for (i = 0; i < n; i++) {
printf("姓名:%s,年龄:%d,成绩:%f\n", p[i].name, p[i].age, p[i].score);
}
}
```
3. 在主函数中调用这个子函数,例如:
```
int main() {
print_stu_array(stu_array, 3);
return 0;
}
```
这样就可以通过子函数来输出主函数中定义的结构体数组了。
(C语言)编写一个函数print,打印一个学生的成绩数组,该数组中有5个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,用print函数输出这些记录结构体数组作为函数数组
好的,以下是一个示例代码,其中包括了一个名为`Student`的结构体,以及输入和输出函数:
```c
#include <stdio.h>
typedef struct {
int num;
char name[20];
int score[3];
} Student;
void input(Student students[], int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("请输入第%d个学生的学号、姓名和3门课的成绩:\n", i+1);
scanf("%d%s", &students[i].num, students[i].name);
for (j = 0; j < 3; j++) {
scanf("%d", &students[i].score[j]);
}
}
}
void print(Student students[], int n) {
int i, j;
for (i = 0; i < n; i++) {
printf("学号:%d\t姓名:%s\t成绩:", students[i].num, students[i].name);
for (j = 0; j < 3; j++) {
printf("%d ", students[i].score[j]);
}
printf("\n");
}
}
int main() {
Student students[5];
input(students, 5);
printf("以下是输入的5个学生的信息:\n");
print(students, 5);
return 0;
}
```
可以看到,`input`函数用于输入学生信息,`print`函数用于输出学生信息。在`main`函数中,首先定义了一个包含5个学生记录的结构体数组`students`,然后调用`input`函数读入学生信息,最后调用`print`函数输出学生信息。