标题:怎么中间输进的值是空的
只看楼主
tty1960
Rank: 1
等 级:新手上路
帖 子:83
专家分:0
注 册:2006-10-16
 问题点数:0 回复次数:3 
怎么中间输进的值是空的
while (i!='#')
{
printf("Enter student's number\n");
scanf("%s",p[k]);
k++;
printf("Enter student's name\n");
scanf("%s",p[k]);
k++;
printf("Enter student's subject\n");
scanf("%s",p[k]);
k++;
printf("Enter the value of the subject\n");
scanf("%s",p[k]);
k++;
printf("Enter the mark of the student\n");
scanf("%s",p[k]);
k++;
printf("If end? yes='#',no='anykey'\n");
i=getchar();
i=getchar();
}
怎么中间输进的值是空的,还有最后这个值不获取两次,就跳过去了,怎么回事呀
搜索更多相关主题的帖子: number Enter 
2007-01-02 11:22
zbqf109
Rank: 1
等 级:新手上路
帖 子:289
专家分:0
注 册:2006-12-31
得分:0 
为什么scanf()里面全是“%s”?另外,p是怎样的结构?

坚决不跟用TC的人打交道!
2007-01-02 11:37
渚薰
Rank: 6Rank: 6
等 级:贵宾
威 望:22
帖 子:1132
专家分:0
注 册:2006-8-6
得分:0 
最后的一个i=getchar()改成getchar()不要赋值给i,这仅仅只是用来消耗掉“\n”
另外,你p数组的长度是否分配妥当,按你这样的过程,k可以无限增加下去,p数组的长度会不够用
至于,中间值为什么丢失,我手头没有编译器,最好自己单步调试下。

个人感觉的你的设计不是太好

建议是把每个学生作为一个实体,用结构类型,同时用链表来实现,你的算法很容易造成内存溢出

[此贴子已经被作者于2007-1-2 12:05:01编辑过]


个人ajax技术专题站: " target="_blank">http://www. 我不会闲你烦,只会闲你不够烦!
2007-01-02 12:02
游乐园
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:671
专家分:0
注 册:2006-11-1
得分:0 
p[k]难道是字符串数组 ?
像c++: string p[3]={"bc","-","cn"};

struct info//看你的意思用结构体数组方便点吧,当然链表也可以
{
int num;
char name[10];
int value;
int mark;
}p[3];

...
int k=0;
while(i!='#')
{/*p[k].num/p[k].name/p[k].value...赋值*/
k++;
i=getchar()}

unicorn-h.spaces. ◇◆ sava-scratch.spaces.
2007-01-02 12:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-113687-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.215882 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved