龙行天下_123 2013-06-26 03:42 采纳率: 0%
浏览 1864

这个程序错在哪里了?

#include <stdio.h>
#include <string.h>
#define N 100

int num;

struct informaion
{   
    char name[100];
    int sex;
    int season_1;
    int season_2;
    int season_3;
    int season_4;
} Num_worker[N];

/*新建文件函数*/



int main (void)
{
    char c;
    int i,j,k;
    int num=0;
    int Number_Choice1;
/*主菜单*/   
    printf ("|");
    for (i = 0;i < 50;i ++)
        printf ("-");
    printf ("|\n");
    printf ("|            ");
    printf ("欢迎使用本员工业绩管理程序");
    printf ("            |\n");
    printf ("|");
    for (i = 0;i < 50;i ++)
        printf ("-");
    printf ("|\n\n\n");

    printf ("|");
    for (i = 0;i < 40;i ++)
        printf ("-");
    printf ("|\n");
    printf ("|               ");
    printf ("0-新建文件");
    printf ("               |\n");
    printf ("|               1-修改员工业绩           |\n");
    printf ("|               2-显示员工业绩           |\n");
    printf ("|               3-查询员工业绩           |\n");
    printf ("|               4-删除员工业绩           |\n");
    printf ("|               5-对员工信息进行排序     |\n");
    printf ("|               6-保存文件               |\n");
    printf ("|               7-读取信息               |\n");
    printf ("|               8-增加记录               |\n");
    printf ("|               9-结束运行               |\n");
    printf ("|----------------------------------------|\n\n");
    printf ("左边数字对应功能选择,请选0-9\n");
    scanf ("%d",&Number_Choice1);

    switch (Number_Choice1)
        {
            case 0:
                            do
                            {
                                printf ("您将要添加一组信息,确定吗?");
                                c=getchar();
                                if (c == 'Y')
                                    {
                                        printf ("请输入姓名:");
                                        scanf ("%s",Num_worker[num].name);

                                        printf ("请输入性别<0为女,1为男>:");
                                        scanf ("%i",&Num_worker[num].sex);

                                        printf ("\n请输入第一季度业绩:");
                                        scanf ("%i",Num_worker[num].season_1);

                                        printf ("\n请输入第二季度业绩:");
                                        scanf ("%i",Num_worker[num].season_2);

                                        printf ("\n请输入第三季度业绩:");
                                        scanf ("%i",Num_worker[num].season_3);

                                        printf ("\n请输入第四季度业绩:");
                                        scanf ("%i",Num_worker[num].season_4);

                                        ++ num;
                                    }
                            }
                            while   (c == 'Y');



                break;
            case 1:
                break;
            case 2:
                break;
            case 3:
                break;
            case 4:
                break;
            case 5:
                break;
            case 6:
                break;
            case 7:
                break;
            case 8:
                break;
            case 9:
                break;
            default:
                printf ("左边数字对应功能选择,请选0-9");
                break;
        }






    return 0;
}

为什么不能执行到printf ("您将要添加一组信息,确定吗?");
c=getchar();
这里。请大虾们答疑解惑!

  • 写回答

3条回答 默认 最新

  • haolong8986 2013-06-26 13:19
    关注

    getchar();从缓冲去读取字符,上一步输入了数字后缓冲区还会存在一个回车符,因此c='\0x10'.
    其实只要在调getchar()前显式的清空缓存区就行了。

    printf ("您将要添加一组信息,确定吗?");
    fflush(stdin); // 清空缓存区
    c=getchar();

    评论

报告相同问题?

悬赏问题

  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥20 Python安装cvxpy库出问题
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误
  • ¥15 python天天向上类似问题,但没有清零
  • ¥30 3天&7天&&15天&销量如何统计同一行
  • ¥30 帮我写一段可以读取LD2450数据并计算距离的Arduino代码
  • ¥15 C#调用python代码(python带有库)
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题