| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:求解!!我是新手,没有分。抱歉!联系号718382171
只看楼主 加入收藏
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
结帖率:83.33%
收藏
 问题点数:0 回复次数:7 
求解!!我是新手,没有分。抱歉!联系号718382171
#include <stdio.h>
#include <ctype.h>
#define m 2
struct dates input_date(void);
void print_date(struct dates wor[m]);
void tong_ji(struct dates wor[m]);

struct dates{
    float a,b,c;
    char gh[20],name[20],sex[20],date[20];
}wor[m];



int main (void)
{
    struct dates wor[m];

   
    printf("****************************************\n");
    printf("*   I:输入员工工资信息                 *\n");
    printf("*   O:输出员工工资信息                 *\n");
    printf("*   T:输出员工工资统计信息             *\n");
    printf("*   S:按要求排序后输出员工工资信息     *\n");
    printf("*   F:按员工号查找并输出其工资信息     *\n");
    printf("*   D:按员工号查找并删除其工资信息     *\n");
    printf("*   Q:退出系统                         *\n");
    printf("****************************************\n");
    while(1)
    {
        switch(toupper(getchar()))
        {
        case 'I':*wor=input_date(void);break;
        case 'O':print_date(wor);break;
        case 'T':tong_ji(wor);break;
        case'Q':break;
        default:return 0;}
        
        
        
        
    }
   
}
struct dates input_date (struct dates wor[m])
{
    int i;
    printf("员工号 姓名 性别  出生日期  岗位工资  补贴总额  代扣总额\n");
    for(i=0;i<m;i++)
        
        scanf("%s    %s    %s   %s   %f    %f   %f",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,&wor[i].a,&wor[i].b,&wor[i].c);
   
    printf("input finished!\n");
    return *wor;
   
}
void print_date (struct dates wor[m])
{
    int i;
    printf("员工号 姓名  性别  出生日期   岗位工资  补贴总额  代扣总额\n");
   
    for(i=0;i<m;i++)
        printf("%s  %s  %s  %s  %f      %f       %f\n",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,wor[i].a,wor[i].b,wor[i].c);
    printf("print finished!\n");
   
}
void tong_ji(struct dates wor[m])
{
    int i,j,max=0;
    float t;
    for(i=0;i<m;i++)
        for(j=i+1;j<m;j++)
            if(wor[i].a<wor[j].a)max=j;
            if(i!=max)
            {t=wor[i].a;
            wor[i].a=wor[j].a;
            wor[j].a=t;}
            printf("最高工资:%f",wor[i].a);
}
搜索更多相关主题的帖子: include 信息 
2013-12-21 00:16
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
把wor做全局变量吧,别用指针了


[fly]存在即是合理[/fly]
2013-12-21 00:40
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
收藏
得分:0 
可是把*去掉后,也不对
2013-12-21 00:42
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
把 wor 做全局变量,*wor=input_date(void) 改成这样:input_date(void)


[fly]存在即是合理[/fly]
2013-12-21 00:46
c718382171
Rank: 2
等 级:论坛游民
帖 子:32
专家分:41
注 册:2013-12-21
收藏
得分:0 
#include <stdio.h>
#include <ctype.h>
#define m 2
void  input_date(void);
void print_date(struct dates wor[m]);
void tong_ji(struct dates wor[m]);

struct dates{
    float a,b,c;
    char gh[20],name[20],sex[20],date[20];
}wor[m];



int main (void)
{
   

   
    printf("****************************************\n");
    printf("*   I:输入员工工资信息                 *\n");
    printf("*   O:输出员工工资信息                 *\n");
    printf("*   T:输出员工工资统计信息             *\n");
    printf("*   S:按要求排序后输出员工工资信息     *\n");
    printf("*   F:按员工号查找并输出其工资信息     *\n");
    printf("*   D:按员工号查找并删除其工资信息     *\n");
    printf("*   Q:退出系统                         *\n");
    printf("****************************************\n");
    while(1)
    {
        switch(toupper(getchar()))
        {
        case 'I':input_date(void);break;
        case 'O':print_date(wor);break;
        case 'T':tong_ji(wor);break;
        case'Q':break;
        default:return 0;}
        
        
        
        
    }
   
}
void input_date (struct dates wor[m])
{
    int i;
    printf("员工号 姓名 性别  出生日期  岗位工资  补贴总额  代扣总额\n");
    for(i=0;i<m;i++)
        
        scanf("%s    %s    %s   %s   %f    %f   %f",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,&wor[i].a,&wor[i].b,&wor[i].c);
   
    printf("input finished!\n");
   
   
}
void print_date (struct dates wor[m])
{
    int i;
    printf("员工号 姓名  性别  出生日期   岗位工资  补贴总额  代扣总额\n");
   
    for(i=0;i<m;i++)
        printf("%s  %s  %s  %s  %f      %f       %f\n",wor[i].gh,wor[i].name,wor[i].sex,wor[i].date,wor[i].a,wor[i].b,wor[i].c);
    printf("print finished!\n");
   
}
void tong_ji(struct dates wor[m])
{
    int i,j,max=0;
    float t;
    for(i=0;i<m;i++)
        for(j=i+1;j<m;j++)
            if(wor[i].a<wor[j].a)max=j;
            if(i!=max)
            {t=wor[i].a;
            wor[i].a=wor[j].a;
            wor[j].a=t;}
            printf("最高工资:%f",wor[i].a);这个程序还是不可以。。
}
2013-12-21 17:21
azzbcc
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:江西财经大学
等 级:贵宾
威 望:81
帖 子:3293
专家分:12919
注 册:2012-11-4
收藏
得分:0 
你没有对回车符进行处理,在 switch 中

case'Q':return 0;
default:break;


这样

如果还有其他问题,就 调试 跟踪 慢慢看


[fly]存在即是合理[/fly]
2013-12-21 22:42
狐狼lu
Rank: 1
等 级:新手上路
帖 子:8
专家分:9
注 册:2013-12-17
收藏
得分:0 
是不是while循环无法跳出,因为判断条件是while(1),即死循环。。。。
2013-12-21 23:28
阿呆不高
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2012-11-1
收藏
得分:0 
回复 楼主 c718382171
printf("input finished!\n");
return *wor;这个地方,传入的参数是wor[m],明显是要返回wor数组的地址。而*wor即是*(wor+0)即是wor[0]。返回值错误。
2013-12-22 00:09
快速回复:求解!!我是新手,没有分。抱歉!联系号718382171
数据加载中...
 
   



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

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