| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 725 人关注过本帖
标题:有程序请教大虾们,希望能仔细解答,谢谢!
只看楼主 加入收藏
xiayuadmin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-12
收藏
 问题点数:0 回复次数:6 
有程序请教大虾们,希望能仔细解答,谢谢!

找了个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); } }

搜索更多相关主题的帖子: 解答 
2004-11-30 10:12
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

老兄,I 服了Y

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

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

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

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


2004-11-30 11:02
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

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

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


差点把你忘了...
2004-11-30 13:46
xiayuadmin
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2004-11-12
收藏
得分:0 

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

2004-11-30 14:02
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

哦,这好难说啊~

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]已经越界了,


2004-11-30 15:17
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 

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

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


差点把你忘了...
2004-11-30 17:38
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 
其实这与编译器处理数组有关!!数组的首地址与其名称一致的!!也就是数组的第一个元素的地址就是数组的名称的值,那么要使用第一个元素那么就是a[0]了!

我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-11-30 23:04
快速回复:有程序请教大虾们,希望能仔细解答,谢谢!
数据加载中...
 
   



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

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