c++代码现实没有错误,但没有运行结果,怎么回事
#include
#include
#include
using namespace std;
struct Student
{
string name;
int score;
};
struct teacher
{
string id;
struct Student st[5];
};
void printTeacher(struct teacher teArray[], int len)
{
string nameseed = "ABCDE";
for (int i = 0; i < len; i++)
{
teArray[i].id = "teacher_";
teArray[i].id += nameseed[i];
for (int j = 0; j < 5; j++)
{
teArray[i].st[j].name = "studen_";
teArray[i].st[j].name += nameseed[j];
int random = rand() % 100 + 1;
teArray[i].st[j].score = 60;
}
}
};
void printinfo(struct teacher teArray[], int len)
{
for (int i = 0; i < len; i++)
{
cout << teArray[i].id << endl;
for (int j = 0; j < 5; j++)
{
cout << teArray[i].st[j].name << endl;
}
}
}
int main()
{
srand((unsigned int) time(NULL));
teacher teArray[3];
int len = sizeof(teArray) / sizeof(teArray[0]);
printTeacher(teArray, len);
}
因为main()函数里没有调用打印结构数组信息的函数printinfo(),调用下这个函数即可打印出相应信息。
修改如下:
#include <iostream>;
#include <stdlib.h>
#include <time.h>
using namespace std;
struct Student {
string name;
int score;
};
struct teacher {
string id;
struct Student st[5];
};
void printTeacher(struct teacher teArray[], int len) {
string nameseed = "ABCDE";
for (int i = 0; i < len; i++) {
teArray[i].id = "teacher_";
teArray[i].id += nameseed[i];
for (int j = 0; j < 5; j++) {
teArray[i].st[j].name = "studen_";
teArray[i].st[j].name += nameseed[j];
int random = rand() % 100 + 1;
teArray[i].st[j].score = 60;
}
}
};
void printinfo(struct teacher teArray[], int len) {
for (int i = 0; i < len; i++) {
cout << teArray[i].id << endl;
for (int j = 0; j < 5; j++) {
cout << teArray[i].st[j].name << endl;
}
}
}
int main() {
srand((unsigned int) time(NULL));
teacher teArray[3] ;
int len = sizeof(teArray) / sizeof(teArray[0]);
printTeacher(teArray, len);
// 调用printinfo()函数打印 teacher结构数组里的信息
printinfo(teArray,len);
}