C++结构体数组赋值问题,新手求教!

zhujizhi1991 2012-03-10 02:59:15
定义一个结构体数组(100个元素),我要向其赋值,该怎么弄?新手求教!
#include "stdio.h"
#include "string.h"
struct student
{
long num;
char name[20];
int English,Math,C,sum;
};
int a,b,c,i;char d[20];
main()
{
struct student std[100],*sp=std;

for(i=0;i<100;i++)
{
printf("please input student's information:");
scanf("%f,%c,%d,%d,%d",&((sp+i)->num),&((sp+i)->name[0]),&((sp+i)->English),&((sp+i)->Math),&((sp+i)->C));
std[i].sum=std[i].English+std[i].Math+std[i].C;
}

指点一下,谢谢!
...全文
602 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujizhi1991 2012-03-11
  • 打赏
  • 举报
回复
很难耶!输入3个同学的信息怎么输呢?
001,xxx,100,100,100(Enter)002,yyy,101,101,101(Enter)003,zzz,102,102,102(Enter)
是这样的吗?一切都是显示Debug error
Peng4Wang1 2012-03-10
  • 打赏
  • 举报
回复
stuct student_data
{
string num;
char name;
char sex;
} student_data[100];
CC_AmyH 2012-03-10
  • 打赏
  • 举报
回复
scanf("%f,%c,%d,%d,%d",&((sp+i)->num),&((sp+i)->name),&((sp+i)->English),&((sp+i)->Math),&((sp+i)->C));
name 这个地方错
teleinfor 2012-03-10
  • 打赏
  • 举报
回复
不好意思,打错了。
it shall be scanf, not sscanf function.
teleinfor 2012-03-10
  • 打赏
  • 举报
回复

struct student_data
{
int age;
char sex;
char strname[20];
}

student_data students[100];
for(int n=0;n<100;n++)
{
sscanf("%d %d %s",&students[n].age,&students[n].sex,students[n].name);
}
zhujizhi1991 2012-03-10
  • 打赏
  • 举报
回复
大家给个简单例子吧,就3组数据怎么赋给结构体数组(100个元素的)
teleinfor 2012-03-10
  • 打赏
  • 举报
回复
struct student std[100],*sp=std;
struct student pstudent = NULL; // -- 纯粹为了程序可读
for(i=0;i<100;i++)
{
printf("please input student's information:");
pstudent = sp+i; // -- 取得一个stdudent数据
scanf("%l,%s,%d,%d,%d",&(pstudent->num),pstudent->name,&(pstudent->English),&(pstudent->Math),&(pstudent->C));
std[i].sum=std[i].English+std[i].Math+std[i].C;
}
teleinfor 2012-03-10
  • 打赏
  • 举报
回复
struct student std[100],*sp=std;
struct student pstudent = NULL; // -- 纯粹为了程序可读
for(i=0;i<100;i++)
{
printf("please input student's information:");
pstudent = sp+i; // -- 取得一个stdudent数据
scanf("%l,%s,%d,%d,%d",&(pstudent->num),pstudent->name,&(pstudent->English),&(pstudent->Math),&(pstudent->C));
std[i].sum=std[i].English+std[i].Math+std[i].C;
}
zhujizhi1991 2012-03-10
  • 打赏
  • 举报
回复
错误指示是runtime error
面包大师 2012-03-10
  • 打赏
  • 举报
回复
scanf("%f,%s,%d,%d,%d",&((sp+i)->num),(sp+i)->name,&((sp+i)->English),&((sp+i)->Math),&((sp+i)->C));
YYgao 2012-03-10
  • 打赏
  • 举报
回复
),&((sp+i)->name[0]), 这个地方有问题吧, name[0] 表示的是一个数组的第一个位置,你定义的是name[20] 表示的是name的字节长度把
quwei197874 2012-03-10
  • 打赏
  • 举报
回复
就是这么赋值啊

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧