| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 459 人关注过本帖
标题:错误,求帮助
只看楼主 加入收藏
mailahuotui
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-8
结帖率:0
收藏
已结贴  问题点数:20 回复次数:6 
错误,求帮助
总是出现runtime error,请问哪里有问题?
#include<stdio.h>
#include "string.h"
# define E struct Employee
E
{
    char Enum[15];
    char Ename[20];
    char Esex[5];

    char Epay[20];
    struct date
    {int day;
    int month;
    int year;
    }Edate;
};
void welcome()
{
    printf("\n");
    printf("\t*********************************\n");
    printf("\t*                             *\n");
    printf("\t*   欢迎您使用本管理系统      *\n");
    printf("\t*                             *\n");
    printf("\t*********************************\n");
    printf("\n");
}
void mainmenu()
{
    printf("\n");
    printf("\t******菜单选项*******\n");
    printf("\n");
    printf("\t1.输入员工信息\n");
    printf("\t2.对员工信息排序\n");
    printf("\t3.退出管理系统\n");
    printf("\t***************************");
    printf("\n\t左边数字对应功能选择,请选1到4;");
}
void f1(E a[],int n)
{int i,b,b1,b2,b3;
printf("输入功能\n");
for(i=0;i<n;i++)
{
    printf("输入第%d员工信息\n",i+1);
    printf("请输入员工编号:");
    scanf("%s",a[i].Enum);
    printf("请输入员工姓名:");
    scanf("%s",a[i].Ename);
    printf("请输入员工性别:(0为女,1为男)");
    scanf("%s",&b);
    if (b=='0')
        strcpy(a[i].Esex,"女");
    else
        strcpy(a[i].Esex,"男");

    printf("请输入员工工资:");
    scanf("%s",a[i].Epay);
    printf("请输入员工生日:");
    scanf("%d%d%d",&b1,&b2,&b3);
    a[i].Edate.day=b1;
    a[i].Edate.month=b2;
    a[i].Edate.year=b3;
}
}
void f2(E a[],int n)
{   int i,j;E temp;
   printf("排序功能\n");
   for(i=0;i<n-1;i++)
     for(j=1;j<n-i;j++)
  if(a[j].Enum<a[j+1].Enum)
         {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
          }
    }



void f3(E a[],int n)
{
   int i;
   printf("号码        姓名       性别                工资               出生日期 \n");   
   for(i=0;i<n;i++)
    {printf("%s          %s         %s         ",a[i].Enum,a[i].Ename,a[i].Esex);
     printf("%d-%d-%d  %f\n",a[i].Edate.day,a[i].Edate.month,a[i].Edate.year,a[i].Epay);}
        getchar();

}

void sele(E a[],int n)
{
    int k,m;
    while(1)
    {system("cls");welcome();getch();system("cls");
        mainmenu();
    scanf("%d",&k);
    while((k>4||k<1))
     {system("cls");mainmenu();scanf("%d",&k);}
    switch(k)
    {case 1:
      printf("输入员工数\n");
      scanf("%d",&m);
      f1(a,m);f3(a,m);
        break;
    case 2:
    f2(a,m);printf("排序后的员工列表\n");f3(a,m);
    break;
    case 3:printf("谢谢使用,再见\n");
    }}
}





main()
{
E s[20];
    sele(s,20);

}
搜索更多相关主题的帖子: 管理系统 include welcome 
2011-09-08 23:56
Heart→M鹏
Rank: 2
等 级:论坛游民
帖 子:80
专家分:94
注 册:2011-5-13
收藏
得分:10 
程序代码:
#include<stdio.h>
#include "string.h"
# include <stdlib.h>
# define E struct Employee
E
{
    char Enum[15];
    char Ename[20];
    char Esex[5];

    char Epay[20];
    struct date
    {int day;
    int month;
    int year;
    }Edate;
};
void welcome()
{
    printf("\n");
    printf("\t*********************************\n");
    printf("\t*                             *\n");
    printf("\t*   欢迎您使用本管理系统      *\n");
    printf("\t*                             *\n");
    printf("\t*********************************\n");
    printf("\n");
}
void mainmenu()
{
    printf("\n");
    printf("\t******菜单选项*******\n");
    printf("\n");
    printf("\t1.输入员工信息\n");
    printf("\t2.对员工信息排序\n");
    printf("\t3.退出管理系统\n");
    printf("\t***************************");
    printf("\n\t左边数字对应功能选择,请选1到4;");
}
void f1(E a[],int n)
{int i,b,b1,b2,b3;
printf("输入功能\n");
for(i=0;i<n;i++)
{
    printf("输入第%d员工信息\n",i+1);
    printf("请输入员工编号:");
    scanf("%s",a[i].Enum);
    printf("请输入员工姓名:");
    scanf("%s",a[i].Ename);
    printf("请输入员工性别:(0为女,1为男)");
    scanf("%s",&b);
    if (b=='0')
        strcpy(a[i].Esex,"");
    else
        strcpy(a[i].Esex,"");

    printf("请输入员工工资:");
    scanf("%s",a[i].Epay);
    printf("请输入员工生日:");
    scanf("%d%d%d",&b1,&b2,&b3);
    a[i].Edate.day=b1;
    a[i].Edate.month=b2;
    a[i].Edate.year=b3;
}
}
void f2(E a[],int n)
{   int i,j;E temp;
   printf("排序功能\n");
   for(i=0;i<n-1;i++)
     for(j=1;j<n-i;j++)
  if(a[j].Enum<a[j+1].Enum)
         {
            temp=a[j];
            a[j]=a[j+1];
            a[j+1]=temp;
          }
    }



void f3(E a[],int n)
{
   int i;
   printf("号码        姓名       性别                工资               出生日期 \n");   
   for(i=0;i<n;i++)
    {printf("%s          %s         %s         ",a[i].Enum,a[i].Ename,a[i].Esex);
     printf("%d-%d-%d  %f\n",a[i].Edate.day,a[i].Edate.month,a[i].Edate.year,a[i].Epay);}
        getchar();

}

void sele(E a[],int n)
{
    int k,m;
    while(1)
    {system("cls");welcome();getchar();system("cls");
        mainmenu();
    scanf("%d",&k);
    while((k>4||k<1))
     {system("cls");mainmenu();scanf("%d",&k);}
    switch(k)
    {case 1:
      printf("输入员工数\n");
      scanf("%d",&m);
      f1(a,m);f3(a,m);
        break;
    case 2:
    f2(a,m);printf("排序后的员工列表\n");f3(a,m);
    break;
    case 3:printf("谢谢使用,再见\n");
    }}
}





main()
{
E s[20];
    sele(s,20);

} 
只是在你的基础改了下,可以运行了,你可以改进下,比如说输入3时根本不能退出系统
2011-09-09 00:10
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:10 
void f3(E a[],int n)
{
     printf("%d-%d-%d  %f\n",a[i].Edate.day,a[i].Edate.month,a[i].Edate.year,a[i].Epay);}   
}

这个函数里的a[i].Epay在结构体里明明定义的是字符数组类型,为啥要用%f格式输出呢.
2011-09-09 00:11
mailahuotui
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-8
收藏
得分:0 
谢谢,error的问题没了,但输入,排序后没有输出显示阿
2011-09-09 00:27
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
不是没有输出显示,而是一输出就被system("cls");清除掉了,虽然你用了一个getchar();不过你按功能2回车的时候,
这个回车符就会被getchar()当作输入了,你可以再加一个getchar()看看,另外你输出显示的时候有点对不上号呢
2011-09-09 00:49
czsbc
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:469
专家分:1700
注 册:2008-12-13
收藏
得分:0 
另外退出系统不是printf("谢谢使用,再见\n");就行了,
可以加个exit(1);
2011-09-09 01:02
mailahuotui
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2011-9-8
收藏
得分:0 
太谢谢了,我的问题真多,排序输出又变成乱码,改了一个多小时也没解决.
2011-09-09 08:29
快速回复:错误,求帮助
数据加载中...
 
   



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

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