c语言结构体题目

如图,我知道是name那里输入有问题,请问该怎么改 谢谢谢谢

主要是题目有点烦,因为%d%s%d这个地方字符串的接收遇到一个空格可能就接收完了,但是第二组数据pencial box本身就是带空格的,跑了一下发现这组数据生成了两个结构体变量,一个是pencial,另一个是pen,pencial里的另外两个数据是乱码的。考虑到所有的商品名称都有可能是多个单词组合成的,而本身又无法提前知道会有多少个空格进来,所以这里的输入可能得考虑直接用%s接收,然后从数组最后往前割出需要的数字,再用 atof()将字符串转换为小数,atoi()将字符串转换为整数,能弄出来的但是太麻烦了= =或者有什么更好的scanf接收格式,暂时也没找到。。。
温馨提示:内容为网友见解,仅供参考
第1个回答  2019-01-08
这种情况,不能使用scanf,而是应该一次读入一行数据,然后再对读入数据进行解析,分离各个数据。
用fgets,  或getline
并且,既然你的name有英式风格(允许空格),那么就应该使用其它符号做间隔符,如逗号。

或者这样,把输入分开来写。
scanf("%[^\n]", a[i].name);
scanf("%d%f", &a[i].num, &a[i].price);

输入的时候,name独立一行输入, num, price可以一行输入。

本回答被网友采纳
第2个回答  2019-01-08
scanf("%s%d%f"

中间加空格
scanf("%s %d %f"

最后那个sum
打印printf("%f",sum);
for循环i从0开始
第3个回答  2019-01-07
scanf中的"%s%d%f"改为"\n%[^0-9]%d%f"追问

好像不行

第4个回答  2019-01-07
硬盘出来了问期

C语言,结构体问题?所占内在字节数,怎么算的???
在c语言中如何计算结构体长度和共用体长度?结构体的长度等于体内各个成员变量长度之后。如此题长度为字符串数组的长度加上两个int型变量的长度,再加上double长度,最后结果为10+2+2+8=22。解析:char 每个字符占一个字节(因为是一个十长度的字符数组)所以是10字节,int占两个字节,double占8个字节...

C语言计算结构体长度问题
{ int n1;char n2;float n3;\/\/因为4字节对齐,这里是12个字节 union uu\/\/这里是个union,所以里面的内容最大的,作为它的大小,所以是用int u1[2],占8个字节 { int u1[2];char u2[2];}su;};最后的结果,应该是12+8= 20 11是绝对不正确的。值得注意的是,编译器有些可以设置对...

C语言结构体编程题,求助大神啊
一、教师信息定义为结构体,其成员年月也为结构体(可直接定义成两个成员变量,本题没有强制要求),婚姻状态采用共用体类型。二、输入信息直接写在main函数,实际软件开发应单独写输入函数,输入验证我只写了性别和婚姻状态的验证,其余成员的输入验证需要自己添加。(实际开发,验证也应单独写函数调用)。

C语言结构体问题
pn->b\/n.a*(++pn)->b 你肯定认为 (++pn)->b 是指向 c (也就是5.0)的吧 你试着运行 同样错 结果为0 根本原因:知识点理解---指针类型(此处为结构体指针)struct x *pn 代表了pn是一个指向 struct x 类型的指针,所以,当 执行 (++pn)时,pn指针指向的地址增加的数量 ...

关于c语言中结构体的一点小问题
i=3;scanf("%d %f %lf",&num[i], &score[i], &exp[i]);注意,字符数组,输入字符串时用格式 %s,数组名就是数组首地址,这时不加 &:char str[80]; scanf("%s" , str); 拍入 good_string, str 获得 "good_string"(双引号)注意,字符数组,输入字符串时用格式 %c, 输...

C语言二级考试,急,大哥们帮帮忙吧!
我先讲解下过程:很明显.这是一个结构体的题目..这个题目其实很简单...struct ks \/*定义名为ks的结构体*\/ {int a; /*成员名..int型..a*/ int *b; /*成员名 int型的指针b..用于指向a的地址(后面给出)*/ }s[4],*p; /*定义一个数组里面有4个结构体变量,定义一个...

c语言:结构体:有3个学生,每个学生的数据包括学号、姓名、3门课的成...
printf("学号 姓名 c语言 高数 英语 平均\\n");for(i=0;i<3;i++){ printf("%-5s %-5s %-6.2f %-6.2f %-6.2f %-6.2f\\n",stu[i].number,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].aver);} return 0;...

c语言 结构体和共用体 1. 有5个学生,每个学生的数据包括学号、姓名、3...
define max 5 \/*设定要输入成绩的学生个数*\/ double zpj; \/*总平均值*\/ struct student \/*结构体*\/ { int num;char name[10];int score1;int score2;int score3;double pj;};struct student stu[max],temp;void Input() \/*输入函数*\/ { int i;for(i=0;i<max;i++)...

c语言,结构体别名问题,结构体定以后紧跟的两个名称都是结构体别名吗?答...
答案是C。STU是结构体类型名,而PSTU是结构体指针类型名。可以用STU来定义结构体变量,如:STU s;可以用PSTU来定义结构体指针类型的变量,如:PSTU p=&s;上面这句与 STU *p=&s;是等价的。

#C语言 结构体运算 我不理解这个题怎么求得的,求大佬帮忙解答...详解...
根据结构体数组的定义可知:cnum[0].x=1;cnum[0].y=3;cnum[1].x=2;cnum[1].y=7;因此,cnum[1].y\/cnum[0].y*cnum[1].x =7\/3*2 =2*2 =4 以上7\/3之所以等于2是因为cnum[1].y和cnum[0].y都是整数,发生的是整除。

相似回答