到底错在哪呀 向结构体数组输入数据老出错
#include<stdiofhg.h>
#define SS struct student
SS{
CZ num;
ZF name[20];
FD sco[3];
}s[5];
void main()
{
ZS i,j;
for(i=0;i<5;i++)
{
scanf("%ld%s",&s[i].num,s[i].name);
for(j=0;j<3;j++)
scanf("%f",&s[i].sco[j]);
}
}
为何运行时输入数据就出错?
如输入 1 abc 11 11 11 按下回车就出错 真不知道错在哪 找了一个晚上了
大写字母都经过宏定义了,请哥哥姐姐们指点一二!
[解决办法]
可能是数据类型不匹配。
你代码也没用贴全啊。
[解决办法]
[code=C/C++][/code]
#include<string>
#include<iostream>
#include<stdlib.h>
using namespace std;
#define SS struct student
#define CZ long int
#define ZF string
#define FD float
#define ZS int
SS{
CZ num;
ZF name[20];
FD sco[3];
}s[5];
int main()
{
ZS i,j;
cout << "enter:" << endl;
for(i=0;i<2;i++)
{
cin >> s[i].num ;
cin >> s[i].name[20];
for(j=0;j<3;j++)
cin>> s[i].sco[j];
}
cout << "over " <<endl;
system( "pause" );
return 0;
}
[解决办法]
楼主,为什么把姓名用ZF name[20];
数组表示?直接 ZF name; 不就行了
[解决办法]
我能想到的唯一错误就是:
scanf("%ld%s",&s[i].num,s[i].name); //如果CZ不是定义为long而是定义为int这样,由于第一个数据输入出错而导致后面输入连续出错!!