| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 412 人关注过本帖
标题:[求助]这个程序哪有问题????
只看楼主 加入收藏
yxc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-26
收藏
 问题点数:0 回复次数:6 
[求助]这个程序哪有问题????
#include<stdio.h>
struct stu
{
int num;
char name[20];
char sex;
int score;
}s[5];
void main()
{
int i,j,av=0;
printf("请输入资料:\n");
for(i=0;i<=4;i++)
{
scanf("%d,%s,%c,%d",&s[i].num,s[i].name,&s[i].sex,&s[i].score);
av=av+s[i].score;
}
printf("总成绩为%d\n",av);
}
出来的av最后总是等于0
搜索更多相关主题的帖子: include 
2007-06-28 09:18
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
scanf("%d,%s,%c,%d",&s[i].num,s[i].name,&s[i].sex,&s[i].score);
这句有问题,当你输入name的时候,系统不知道你什么时候是字符串结束,所有你的name值是XXX,X,X
你可以printf你的name值看看就知道了

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-06-28 11:29
yxc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-26
收藏
得分:0 
如果printf name什么都不打印
但是如果把s初始化就能得到av的正确结果,还是搞不懂为什么

菜鸟总有一天会飞起来的!
2007-06-28 11:48
yxc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-26
收藏
得分:0 

还有这个
main(){
static int a[3][4]={0,1,2,3,4,5,6,7,8,9,10,11};
int(*p)[4];
int i,j;
p=a;
for(i=0;i<3;i++)
for(j=0;j<4;j++) printf("%2d ",*(*(p+i)+j));
}

在我这里编译不了,说最后printf一句有问题
这个是本站C语言教程第六章里的一个例子


菜鸟总有一天会飞起来的!
2007-06-28 11:51
yxc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-26
收藏
得分:0 

楼上那个例子没问题了我又试了试,可以了


菜鸟总有一天会飞起来的!
2007-06-28 12:35
酒肉弥勒佛
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:399
专家分:0
注 册:2006-6-6
收藏
得分:0 
在C中,所有的指针,数组都要初始化,字符串的本质就是一维数组
初始化就行了吗?我没试过,但我不清楚,当你输入name的时候,系统如何判断你的name结束了?
为了避免这样的错误,你最好分开写,这是一个潜在的bug

编程是为了提高效率,好的程序是因为他的高效;在编程的道路上,永远追逐高效的算法
2007-06-28 13:11
yxc
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2007-6-26
收藏
得分:0 
明白了

菜鸟总有一天会飞起来的!
2007-06-28 13:24
快速回复:[求助]这个程序哪有问题????
数据加载中...
 
   



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

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