你的代码有很多漏洞,很不规范
改成这样就行了:
#include
#include
using namespace std;//有时候会用到,最好写上
typedef struct
{
int course_num;
char course_name[200];
float course_score;
}course;
void input(course *cour,int i)
{
int j;
for(j=0;j {cout<<"请输入第"<
cin>>cour[j].course_name;//这里是错误的主要地方,注意输入字符串的格式
cin>>cour[j].course_score;
}
}
void output(course *cour,int i)
{
int j;
for(j=0;j {
cout<<"第"<
}
int main()
{
//这里有没有意义的定义
course c[10];
input(c,10);
output(c,10);
}
楼主注意字符数组的输入,cin>>字符数组的地址。改过来就没问题了
void input(course *cour,int i)
{
int j;
for(j=0;j {cout<<"请输入第"<cin>>cour[j].course_num;
cin>>cour[j].course_name;
cin>>cour[j].course_score;
}
}
void input(course *cour,int i)
{
int j;
for(j=0;j {cout<<"请输入第"<
cin>>cour[j].course_name[20];
cin>>cour[j].course_score;
}
}
这里错了。
cin>>cour[j].course_name[20];这样操作数组越界了,而且即使没有越界,这样写也只是给数组的下标为20的元素赋值,并没有成功给整个数组赋值。
将 cin>>cour[j].course_name[20];改成 cin>>cour[j].course_name;就行了
那个地方没有成功赋值的话就是乱码,你把原来的初始化为零试试,估计输出来就都是零了