当前位置: 代码迷 >> C语言 >> 有程序请教大虾们,希望能仔细解答,谢谢!
  详细解决方案

有程序请教大虾们,希望能仔细解答,谢谢!

热度:245   发布时间:2004-11-30 10:12:00.0
有程序请教大虾们,希望能仔细解答,谢谢!

找了个50名教师的工资,扣除的程序,结果运行怎么不行?请教大虾们!

#include "stdio.h" struct subtract { float water; float electri; float housing; }; struct teach { char name[20]; 为什么不是 char name[50]; char depart[30]; char depart[50]l; 因为是50名教师的20与30是是少点?? float salary; float bonus; struct subtract wage; }t[50]; main() { int i; char name[20]; printf("Input data:"); for(i=0;i<50;i++) ( 为什么不是for(i=1;i<50;i++) ,我个人认为i=1;i〈50;才是输入50个,i=0,不就是51个了吗?) { scanf("%s",t[i].name); scanf("%s",t[i].depart); scanf("%f",&t[i].salary); scanf("%f",&t[i].bonus); scanf("%f",&t[i].wage.water); scanf("%f",&t[i].wage.electri); scanf("%f",&t[i].wage.housing); } printf("Input name:"); scanf("%s",name); for(i=0;i<50;i++); if(strcmp(t[i].name,name)==0) { printf("name=%s,department=%s\n",t[i].name,t[i].depart); printf("salary=%f,bonus=%f\n",t[i].salary,t[i].bonus); printf("water=%f,electricity=%f,housing=%f",t[i].wage.water,t[i].wage.electri,t[i].wage.housing); } }

搜索更多相关的解决方案: 解答  

----------------解决方案--------------------------------------------------------

老兄,I 服了Y

你看过 数组的 文章吗. 数组 是 以 0 为 开头的!

比如a[3]={1,2,3}

其中a[0]=1,a[1]=2,a[2]=3; 并没有 a[3]

而那个char name[20]; 看你的名字有多长啊,当然 name[50]也 可以,但是很少有人会有这么长的名字啊~


----------------解决方案--------------------------------------------------------

你说的for循环也不对,就是50 ,因为他是小于50,而不是小于等于50!!!

已经知道结构了,怎么语法还不太清楚,你是不是已经学到结构了?


----------------解决方案--------------------------------------------------------

呵呵,可能学的不是很好,但是我还是不明白i=0,这个式子,老是认为i=1;才对?能在详细解释解释吗?谢谢!


----------------解决方案--------------------------------------------------------

哦,这好难说啊~

for(int i=0;i<50;i++)

a[i]=i;

这个是一个简单的赋值 程序, 即a[0]=0,a[1]=1,a[2]=2 ...................a[49]=49;

但是没有 a[50],因为a[50]已经越界了,


----------------解决方案--------------------------------------------------------

这是和数组的命名方式有关的,

因为编译器定义a[0]为数组的第一个数据,所以要从零开始了,不然0都不空这不用了么???


----------------解决方案--------------------------------------------------------
其实这与编译器处理数组有关!!数组的首地址与其名称一致的!!也就是数组的第一个元素的地址就是数组的名称的值,那么要使用第一个元素那么就是a[0]了!
----------------解决方案--------------------------------------------------------
  相关解决方案