找回密码
 注册会员
查看: 638|回复: 0

c程序改错,高手进

[复制链接]
发表于 2010-1-19 13:14:54 | 显示全部楼层 |阅读模式
<p>c程序改错,高手进</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:20 -</p>
<p>解决时间:2010-1-19 13:12</p>
<p>这个程序还没有写完但是在输入数据时总会有runtime error 6002出现,不知是哪里有问题请大家来看看</p>
<p>#include<stdio.h></p>
<p>#include<string.h></p>
<p>struct student</p>
<p>{</p>
<p>char name[5];</p>
<p>char num[10];</p>
<p>float maths;</p>
<p>float chinese;</p>
<p>float english;</p>
<p>float physics;</p>
<p>float computer;</p>
<p>float average;</p>
<p>};</p>
<p>void main()</p>
<p>{</p>
<p>struct student stu[4],*p;</p>
<p>void input(struct student *p);</p>
<p>p=stu;</p>
<p>input(p);</p>
<p>}</p>
<p>void input(struct student *p)</p>
<p>{</p>
<p>int i;</p>
<p>char name[5];</p>
<p>char num[10];</p>
<p>printf("           ===================================================\n");</p>
<p>printf("           姓名 学号 数学 语文 英语 物理 计算机\n");</p>
<p>for(i=0;i<4;i++)</p>
<p>{</p>
<p>p+=i;</p>
<p>printf("           ");</p>
<p>scanf("%s",name);</p>
<p>strcpy(p->name,name);</p>
<p>scanf("%s",num);</p>
<p>strcpy(p->num,num);</p>
<p>scanf("%f%f%f%f%f",&p->maths,&p->chinese,&p->english,&p->physics,&p->computer);</p>
<p>printf("           ");</p>
<p>}</p>
<p>}</p>
<p>问题补充:</p>
<p>已经可以编译运行,只要处理掉输入数据的问题</p>
<p>感谢1楼的,那个问题我注意到了,但是先要解决的是输入数据后有错误的问题,我猜想可能是输入设备的缓存区有冗余数据</p>
<p>提问者: 阿西莫—瓦力 - 二级</p>
<p>最佳答案</p>
<p>问题出在这句:p+=i;</p>
<p>在这个for循环里面,第一次p+=0; 第二次p+=1;这里已经把p给改掉了,第三次再p+=2。。。就加得太多啦~~</p>
<p>可以改成这样:</p>
<p>void input(struct student *p)</p>
<p>{</p>
<p>int i;</p>
<p>char name[5];</p>
<p>char num[10];</p>
<p>struct student *q;</p>
<p>printf("           ===================================================\n");</p>
<p>printf("           姓名 学号 数学 语文 英语 物理 计算机\n");</p>
<p>for(i=0;i<4;i++)</p>
<p>{</p>
<p>q=p+i;</p>
<p>printf("           ");</p>
<p>scanf("%s",name);</p>
<p>strcpy(p->name,name);</p>
<p>scanf("%s",num);</p>
<p>strcpy(p->num,num);</p>
<p>scanf("%f%f%f%f%f",&p->maths,&p->chinese,&p->english,&p->physics,&p->computer);</p>
<p>}</p>
<p>}</p>
<p>==========================</p>
<p>补充回答:</p>
<p>输入数据后有错误??有什么错误?你输入时输得不对吧?</p>
<p>0</p>
<p>回答者:</p>
<p>DerekTan - 六级   2010-1-19 13:07</p>
<p>我来评论>></p>
<p>提问者对于答案的评价:</p>
<p>谢谢了,我把%f改成%d就好了,虽然我不知道为什么用%f没有用,但还是谢谢你。</p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-8-4 19:37

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表