读书人

[新手有关问题]这段代码为什么不能实现

发布时间: 2012-03-07 09:13:51 作者: rapoo

[新手问题]这段代码为什么不能实现多次输入?
#include "iostream.h "
#include "stdlib.h "
struct stud
{
char name;
int xuehao,cj[5],aver,total;
};
void main()
{
stud stu[5];
int i,j;
for(i=0;i <5;i++)
{
cout < < "输入第 " < <i+1 < < "位学生的姓名和学号: ";
cin> > stu[i].name> > stu[i].xuehao;
cout < <endl;
for(j=0;j <5;j++)
stu[i].cj[i]=rand()%61+40;
}
}


每次运行就只输入第一次
望各位指正

[解决办法]
char name;改成char name[10];//不一定非得10,其他数字也可以
这是因为你如果只分配一个char name的话,你输入名字的时候只能输入一个字符,否则你要输入多个字符,系统只保留第一个,而且会改变所有内部数据。
[解决办法]
#include "stdafx.h "
#include "iostream.h "
#include "stdlib.h "

struct stud
{
char name[10];
int xuehao,cj[5],aver,total;
};
void main()
{
stud stu[5];
int i,j;
for(i=0;i <5;i++)
{
cout < < "输入第 " < <i+1 < < "位学生的姓名和学号: " < <endl;
cin> > stu[i].name> > stu[i].xuehao;

for(j=0;j <5;j++)
stu[i].cj[i]=rand()%61+40;
}

for(i=0;i <5;i++)
{
cout < <stu[i].name < <ends < <stu[i].xuehao < <endl;//测试输入是否正确
}
}

读书人网 >C++

热点推荐