一个c语言问题,为什么下面的程序执行后,会有一行0,为什么!!
你的文章好乱!!!
改改再上来问吧
------

回复此文章 |

for(p=leader;p<leader+4;p++)
改for(p=leader;p<leader+3;p++)
因为指针和数组是从0开始的
你好好想想
------

回复此文章 |

Firstly, you should use loop such as for loop, while loop;

Secondly, you need strcmp function which can compare two
strings.
------
回复此文章 |

#include<string.h>
struct guozhw
{
int no;
char name[20];
float maths;
float eng;
float chin;
float total;
float average;
}leader[3];
main()
{
int i;
int j;
struct guozhw *p;
for(i=1;i<=3;i++)
{
scanf("%d",&leader<i>.no);
scanf(
"%s",&leader<i>.name);
scanf(
"%f",&leader<i>.maths);
scanf(
"%f",&leader<i>.eng);
scanf(
"%f",&leader<i>.chin);
leader<i>.total=leade<i>.maths+leader<i>.eng+leader<i>.chin;
leader<i>.average=leader<i>.total/3;
}
printf (
"No. Name Maths Eng Chin Total Average\n");
for(p=leader;p<leader+4;p++)
printf(
"%d %-5s %10f %10f %10f %15f %10f\n",p->no,p->name,p->maths,p->eng,p->chin,p->total,p->average);

}

------

回复此文章 |

if(leader.name==leader.name)
pritnf ("you scanf wrong");
你可以看看关于c语言书中的那个投票的例子你会明白你的错误
我知道是与函数有关可是我忘了那个函数是什么了?

------

回复此文章 |

haohao 你错了,我找到错了,是由于for(i=1;i<=3;i++)
中的i=1不能等于1而是零,那就可以了,可是我现在又有个问题了
在输入名字和学号时,要是相同该怎么办?
在这时候,我想让它输出错误可是不可以!
我是这样想的!
if(leader.name==leader.name)
pritnf ("you scanf wrong");
可是不坐在知道怎么加,或许这么办错了,但是应该怎么办,才能制止同名或
同号的出现呢?
haohao meiking 有办法吗?
其他人有没有办法呀!!!!
------
回复此文章 |

/* 防止同名出现 */
int r;
for(i=0;i<=3;i++)
{
scanf(
"%d",&leader<i>.no);
scanf(
"%s",&leader<i>.name);
for(r=0;r<i;r++)
{
if(leader<i>.name==leader[r].name)
pritnf(
"you scanf wrong");
i--;
/* 如果出现同名,i值保持不变,跳出本次循环 */
continue;
}
scanf(
"%f",&leader<i>.maths);
scanf(
"%f",&leader<i>.eng);
scanf(
"%f",&leader<i>.chin);
leader<i>.total=leade<i>.maths+leader<i>.eng+leader<i>.chin;
leader<i>.average=leader<i>.total/3;
}

你自己再试试吧,我只是凭空想的
------
回复此文章 |

这样做也是不行的,因为关于字符串的==我认为是不行的因为我试过可能有这样一个函数strcmp()是用来做字符/i>
hofman   2005-11-19 22:02:54 评论:0   阅读:1852   引用:0

发表评论>>

署名发表(评论可管理,不必输入下面的姓名)

姓名:

主题:

内容: 最少15个,最长1000个字符

验证码: (如不清楚,请刷新)

Copyright@2004-2010 powered by YuLog