标题:[求助]程序输入问题(职工信息输入输出)
只看楼主
hahahan
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-4-10
 问题点数:0 回复次数:1 
[求助]程序输入问题(职工信息输入输出)

/* 用indata()输入职工的信息并且用outdata()输出 */

#include "stdio.h"
#include "conio.h"


struct employee
{
int num;
char name[10];
char sex;
float base,stru,total;
};

void indata(struct employee *);
float wages(float,float);
void outdata(struct employee);


main()
{
struct employee member;
indata(&member);
member.total=wages(member.base,member.stru);
outdata(member);
getch();
}

void indata(struct employee *p)
{
float temp;
printf("\nPlease input NO. :");
scanf("%d",&(*p).num);
getchar(); /*此处getchar接收上面的回车,我不明白没有它
下面为什么运行就会出错?*/
printf("\nInput name:");
gets(p->name); /* 我想用scanf("%s",(*p).name); 发现可以正常运行,
但是用scanf("%s",&(*p).name);竟然也可以?? */
printf(" \nInput SEX:");
scanf("%c",&(*p).sex);
printf("\nInput basewage :");
scanf( "%f",&temp); /*为什么非要定义一个temp??我想用scanf("%f",&(*p).base);
形式直接输入basewage和struwage为什么又出错??*/

p->base=temp;
printf("\nInput struwage :");
scanf( "%f",&temp);
p->stru=temp;

}

float wages(float a,float b)
{ float t;
t=a+b;
return(t);
}


void outdata(struct employee em)
{ printf("NO.:%d\n",em.num);
printf("Name:%s\n",em.name);
printf("Sex:%c\n", em.sex);
printf("basewage:%f\t,strutwage:%f\t,totalwage:%f",
em.base,em.stru,em.total);
}


/* indata()我改成这样了 ,为什么不行??


void indata(struct employee *p)
{
float temp;
printf("\nPlease input NO. :");
scanf("%d",&(*p).num);
getchar();

printf("\nInput name:");
scanf("%s",(*p).name);
printf(" \nInput SEX:");
scanf("%c",&(*p).sex);
printf("\nInput basewage :");
scanf( "%f",&(*p).base);

printf("\nInput struwage :");
scanf( "%f",&(*p).stru);


}

*/

搜索更多相关主题的帖子: 职工 输出 输入 
2007-08-23 12:21
流年226
Rank: 1
等 级:新手上路
帖 子:37
专家分:7
注 册:2013-4-27
得分:0 
看了看,没看懂,路过。
2013-05-12 16:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-164824-1-1.html




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

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