鑫海湾的那片海 2021-12-08 14:43 采纳率: 100%
浏览 42
已结题

我这个老是错误怎么解决





#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
void a()
{
     int a;
         printf("\t**    查看for语句         **\n");
          printf("\t**        1:查看          **\n");
          printf("\t**        0:退出          **\n");
          printf("\t****************************\n");
           scanf("%d",&a);
           printf("\n");
           switch(a)
           {
          case 1:
        {
            printf("开始\n");
            //getch();
            system("color 1");
            printf("                            *                       \n");
            printf("                           ***                      \n ");
            printf("                          *****\n");
            printf("                         ******* \n");
            printf("                       **********\n");
            printf("               ***************************\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
            printf("\n");
        }break;
          case 0:printf("已返回主页面\n");break;
          default:
         printf("输入错误,请重新输入\n");
         break;
         }
       
}

int b()
{
     int b;
         printf("*********************************");
         printf("\t**     观看数组类型图像    **\n");
          printf("\t**          1:观看        **\n");
          printf("\t**          2:退出        **\n");
          printf("\t*****************************\n");
          scanf("%d",&b);
          printf("\n");
          switch(b)
          {
             case 1:
            {   int a[10][10];
            int x,y;
            for(x=0;x<=9;x++)
            {
                for(y=0;y<=9;y++)
                {
                    a[x][0]=x+1;
                    a[x][y+1]=2*a[x][y];
                }
            }
             printf("输出10行10列的值:\n");
               for(x=0;x<=9;x++)
               {
                   for(y=0;y<=9;y++)
                   printf("%5d",a[x][y]);
                   printf("\n");
                } 
        } break;
              case 2:printf("已回到主页面\n");break;
              default:
             printf("输入错误,返回主界面请重新输入\n");
             break;
         }
}

int c()
{
     int c;
          printf("\t**      函数类型图像      **\n");
          printf("\t**        1:阶乘         **\n");
         printf("\t**        2:最大值       **\n");
         printf("\t**        3:返回         **\n");
          printf("\t****************************\n");
          scanf("%d",&c);
          printf("\n");
          switch(c)
          {
             case 1://阶乘 
             {
                {
                    int fac(int x);
                    int x,y; 
                    printf("输入阶乘的数:");
                    scanf("%d",&x);
                    y=fac(x);
                    printf("%d!=%d\n",x,y);
                    return 0;
                }
                
                int fac(int x); 
                {
                    int a,x;
                    if(x<0)
                    printf("x<0,data error!");
                    else if(x==0,x==1)
                    a=1;
                    else
                    a=fac(x-1)*x;
                    return(a);
                }break;
            
            }
              case 2://最大值 
              {
                {
                    int max4(int a,int b,int c,int d);
                    int a,b,c,d,max;
                    printf("请输入4个数:");
                    scanf("%d,%d,%d,%d",&a,&b,&c,&d);
                    max=max4(a,b,c,d);
                    printf("最大值是:%d\n",max);
                    return 0; 
                }
                int max4(int a,int b,int c,int d)
                {
                    int max2(int a,int b);
                    int n;
                    n=max2(a,b);
                    n=max2(n,c);
                    n=max2(n,d);
                    return n;
                }
                int max2(int a,int b)
                {
                     if(a>=b)
                       return a;
                     else
                       return b;
                }break;
            }
             case 3:printf("已返回主页面\n");break;  
              default:
             printf("输入错误,返回主界面请重新输入\n");
             break;
         }
}

void d()
{
     int d;
         printf("\t************************\n");
         printf("\t**请选择九九乘法表类型**\n");
         printf("\t********1:左上*********\n");
         printf("\t*****   2:左下   ******\n");
         printf("\t***     3:右上     ****\n");
         printf("\t***     4:右下     ****\n");
         printf("\t*****   5:奇数   ******\n");
         printf("\t********6:返回*********\n");
         printf("\t************************\n");
         scanf("%d",&d);
          printf("\n");
          switch(d)
          {
             case 1://九九乘法表左上
                {
                    int x, y;
                    for(x=9;x>0;x--)
                    {
                        for(y=1;y<=x;y++)
                        printf("%d*%d=%2d\t",x,y,x*y);
                        printf("\n");
                    }
                };break;
              case 2:////九九乘法表左下
                {
                 int x,y;
                 for(x=1;x<=9;x++)
                     {
                     for(y=1;y<=x;y++)
                     printf("%d*%d=%2d\t",x,y,x*y);   
                     printf("\n");
                     }    
                };break;
             case 3://九九乘法表右上 
                {
                    int x, y; 
                    for(x=1;x<=9;x++)
                    {
                    for(y=1;y<=9;y++)
                    {
                    if(y<x)
                    printf("\t");
                    else
                    printf("%d*%d=%2d\t",x,y,x*y);
                    }
                        printf("\n");
                    }    
                };break;  
             case 4://九九乘法表右下 
                             {
                 int x,y,n;
                 for(x=1;x<=9;x++)
                     {
                        for(n=1;n<=9-x;n++)
                        printf("\t");
                        {
                        for(y=1;y<=x;y++)
                        printf("%d*%d=%2d\t",x,y,x*y);   
                        printf("\n");
                        }
                    }
                };break; 
             case 5://九九乘法表奇数 
                {
                 int x,y,n;
                 for(x=1;x<=9;x++)
                     {
                        for(n=1;n<=9-x;n++)
                        printf("\t");
                         {
                            for(y=1;y<=x;y++)
                            if(x%2!=0)
                            printf("%d*%d=%2d\t",x,y,x*y);   
                            printf("\n");
                         }
                    }
                };break;
             case 6:printf("已返回主页面\n");break;   
              default:
             printf("输入错误,返回主界面重新输入\n");
             break;
         }
}

void e()
{
    int e;
    printf("1:输入一个数,判断是正数、负数还是零。\n");
    printf("2:输入一个小于10000的正整数,将其每个位数输出,并且逆序输出。\n");
    printf("3:输入4个数字,让其从小到大排序。\n");
    printf("4:求三位数的水仙花数。\n");
    printf("5:用c语言求下列分数序列的前20项之和\n");
    printf("6:一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下.求它在第10次落地并反弹到最高点,共经过多少m?第10次反弹多高?\n");
    printf("7:输出杨辉三角。\n");
    printf("8:利用折半查找法找数。");
    printf("9:输入3行字符串,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
    printf("10:输入一段文字,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
    printf("11:写程序完成下面条件:1)输入10个职工的姓名和职工号;2)按职工号由小到大的顺序排序;3)要求输入一个职工号,用折半法查找出该职工的姓名,从主函数输入要查找的职工号,输出该职工的姓名\n");
    printf("12:给一段数,给每个数之间插入空格\n");
    printf("13:输入3个数字,从小到大排列。\n");
    printf("14:编写C语言程序,输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。\n");
    printf("15:输入一行文字,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
    printf("16:输入5个学生的学号、姓名、分数1、分数2以及分数3并输出。\n");
    scanf("%d",&d);
      printf("\n");
          switch(e)
          {
          case 1:
            {
                int x;
                printf("请输入x的值:");
                scanf("%d",&x);
                if(x<0)
                    printf("Y=-1\n");
                else
                       if(x=0)
                         printf("Y=0\n");
                    else
                         printf("Y=1\n");
            }break;
        case 2:
          break;
        case 3:
          break;
        case 4:
          break; 
        default:
         printf("输入错误,返回主界面重新输入\n");
        break;
          }
}

void f()
{
     int f;
          printf("\t**是否确认观看函数类型图像**\n");
          printf("\t**        1:用号输出字母C的图案。       **\n");
         printf("\t**        2:求最大值     **\n");
         printf("\t**        3:返回         **\n");
          printf("\t****************************\n");
          scanf("%d",&c);
          printf("\n");
          switch(f)
          {
             case 1:
            {    
                printf("Hello C-world!\n");
                printf(" ****\n");
                printf(" *\n");
                printf(" * \n");
                printf(" ****\n");
            }
                break;
              case 2:system("F:\\求最大值.exe\n");break;
             case 3:printf("已返回主页面\n");break;  
              default:
             printf("输入错误,返回主界面请重新输入\n");break;
             }
}

main()

{
     int x;
     while(1)
     {
         printf("\t********操作选项********\n");
         printf("\t**    1:for语句       **\n");
         printf("\t**    2:数组类型      **\n");
         printf("\t**    3:函数类型      **\n");
         printf("\t**    4:九九乘法表    **\n");
         printf("\t**    5:个人小    **\n");
         printf("\t**    6:图像打印类    **\n");

         printf("\t************************\n");
     
     scanf("%d",&x);
     printf("\n");
     
     switch(x)
      {
          case 1: a();break;
          case 2: b();break;
          case 3: c();break;
         case 4: d();break;
         case 5: e();break;
         case 6: f();break;
         default:
        printf("输入错误,请重新输入\n");
        break;
     } 
  }
}
  • 写回答

1条回答 默认 最新

  • CSDN专家-sinJack 2021-12-08 14:47
    关注

    方法怎么写在case块中?

    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    void a()
    {
         int a;
             printf("\t**    查看for语句         **\n");
              printf("\t**        1:查看          **\n");
              printf("\t**        0:退出          **\n");
              printf("\t****************************\n");
               scanf("%d",&a);
               printf("\n");
               switch(a)
               {
              case 1:
            {
                printf("开始\n");
                //getch();
                system("color 1");
                printf("                            *                       \n");
                printf("                           ***                      \n ");
                printf("                          *****\n");
                printf("                         ******* \n");
                printf("                       **********\n");
                printf("               ***************************\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
                printf("\n");
            }break;
              case 0:printf("已返回主页面\n");break;
              default:
             printf("输入错误,请重新输入\n");
             break;
             }
    }
    int b()
    {
         int b;
             printf("*********************************");
             printf("\t**     观看数组类型图像    **\n");
              printf("\t**          1:观看        **\n");
              printf("\t**          2:退出        **\n");
              printf("\t*****************************\n");
              scanf("%d",&b);
              printf("\n");
              switch(b)
              {
                 case 1:
                {   int a[10][10];
                int x,y;
                for(x=0;x<=9;x++)
                {
                    for(y=0;y<=9;y++)
                    {
                        a[x][0]=x+1;
                        a[x][y+1]=2*a[x][y];
                    }
                }
                 printf("输出10行10列的值:\n");
                   for(x=0;x<=9;x++)
                   {
                       for(y=0;y<=9;y++)
                       printf("%5d",a[x][y]);
                       printf("\n");
                    } 
            } break;
                  case 2:printf("已回到主页面\n");break;
                  default:
                 printf("输入错误,返回主界面请重新输入\n");
                 break;
             }
    }
    int c()
    {
         int c;
              printf("\t**      函数类型图像      **\n");
              printf("\t**        1:阶乘         **\n");
             printf("\t**        2:最大值       **\n");
             printf("\t**        3:返回         **\n");
              printf("\t****************************\n");
              scanf("%d",&c);
              printf("\n");
              switch(c)
              {
                 case 1://阶乘 
                 {
                    {
                        int fac(int x);
                        int x,y; 
                        printf("输入阶乘的数:");
                        scanf("%d",&x);
                        y=fac(x);
                        printf("%d!=%d\n",x,y);
                        return 0;
                    }
                    break;
                }
                  case 2://最大值 
                  {
                    {
                        int max4(int a,int b,int c,int d);
                        int a,b,c,d,max;
                        printf("请输入4个数:");
                        scanf("%d,%d,%d,%d",&a,&b,&c,&d);
                        max=max4(a,b,c,d);
                        printf("最大值是:%d\n",max);
                        return 0; 
                    }
                    break;
                }
                 case 3:printf("已返回主页面\n");break;  
                  default:
                 printf("输入错误,返回主界面请重新输入\n");
                 break;
             }
    }
    void d()
    {
         int d;
             printf("\t************************\n");
             printf("\t**请选择九九乘法表类型**\n");
             printf("\t********1:左上*********\n");
             printf("\t*****   2:左下   ******\n");
             printf("\t***     3:右上     ****\n");
             printf("\t***     4:右下     ****\n");
             printf("\t*****   5:奇数   ******\n");
             printf("\t********6:返回*********\n");
             printf("\t************************\n");
             scanf("%d",&d);
              printf("\n");
              switch(d)
              {
                 case 1://九九乘法表左上
                    {
                        int x, y;
                        for(x=9;x>0;x--)
                        {
                            for(y=1;y<=x;y++)
                            printf("%d*%d=%2d\t",x,y,x*y);
                            printf("\n");
                        }
                    };break;
                  case 2:////九九乘法表左下
                    {
                     int x,y;
                     for(x=1;x<=9;x++)
                         {
                         for(y=1;y<=x;y++)
                         printf("%d*%d=%2d\t",x,y,x*y);   
                         printf("\n");
                         }    
                    };break;
                 case 3://九九乘法表右上 
                    {
                        int x, y; 
                        for(x=1;x<=9;x++)
                        {
                        for(y=1;y<=9;y++)
                        {
                        if(y<x)
                        printf("\t");
                        else
                        printf("%d*%d=%2d\t",x,y,x*y);
                        }
                            printf("\n");
                        }    
                    };break;  
                 case 4://九九乘法表右下 
                                 {
                     int x,y,n;
                     for(x=1;x<=9;x++)
                         {
                            for(n=1;n<=9-x;n++)
                            printf("\t");
                            {
                            for(y=1;y<=x;y++)
                            printf("%d*%d=%2d\t",x,y,x*y);   
                            printf("\n");
                            }
                        }
                    };break; 
                 case 5://九九乘法表奇数 
                    {
                     int x,y,n;
                     for(x=1;x<=9;x++)
                         {
                            for(n=1;n<=9-x;n++)
                            printf("\t");
                             {
                                for(y=1;y<=x;y++)
                                if(x%2!=0)
                                printf("%d*%d=%2d\t",x,y,x*y);   
                                printf("\n");
                             }
                        }
                    };break;
                 case 6:printf("已返回主页面\n");break;   
                  default:
                 printf("输入错误,返回主界面重新输入\n");
                 break;
             }
    }
    void e()
    {
        int e;
        printf("1:输入一个数,判断是正数、负数还是零。\n");
        printf("2:输入一个小于10000的正整数,将其每个位数输出,并且逆序输出。\n");
        printf("3:输入4个数字,让其从小到大排序。\n");
        printf("4:求三位数的水仙花数。\n");
        printf("5:用c语言求下列分数序列的前20项之和\n");
        printf("6:一个球从100m高度自由落下,每次落地后反弹回原来高度的一半,再落下.求它在第10次落地并反弹到最高点,共经过多少m?第10次反弹多高?\n");
        printf("7:输出杨辉三角。\n");
        printf("8:利用折半查找法找数。");
        printf("9:输入3行字符串,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
        printf("10:输入一段文字,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
        printf("11:写程序完成下面条件:1)输入10个职工的姓名和职工号;2)按职工号由小到大的顺序排序;3)要求输入一个职工号,用折半法查找出该职工的姓名,从主函数输入要查找的职工号,输出该职工的姓名\n");
        printf("12:给一段数,给每个数之间插入空格\n");
        printf("13:输入3个数字,从小到大排列。\n");
        printf("14:编写C语言程序,输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。\n");
        printf("15:输入一行文字,找出其中的大写字母、小写字母、数字,空格以及其他字符的个数。\n");
        printf("16:输入5个学生的学号、姓名、分数1、分数2以及分数3并输出。\n");
        scanf("%d",&d);
          printf("\n");
              switch(e)
              {
              case 1:
                {
                    int x;
                    printf("请输入x的值:");
                    scanf("%d",&x);
                    if(x<0)
                        printf("Y=-1\n");
                    else
                           if(x=0)
                             printf("Y=0\n");
                        else
                             printf("Y=1\n");
                }break;
            case 2:
              break;
            case 3:
              break;
            case 4:
              break; 
            default:
             printf("输入错误,返回主界面重新输入\n");
            break;
              }
    }
    void f()
    {
         int f;
              printf("\t**是否确认观看函数类型图像**\n");
              printf("\t**        1:用号输出字母C的图案。       **\n");
             printf("\t**        2:求最大值     **\n");
             printf("\t**        3:返回         **\n");
              printf("\t****************************\n");
              scanf("%d",&c);
              printf("\n");
              switch(f)
              {
                 case 1:
                {    
                    printf("Hello C-world!\n");
                    printf(" ****\n");
                    printf(" *\n");
                    printf(" * \n");
                    printf(" ****\n");
                }
                    break;
                  case 2:system("F:\\求最大值.exe\n");break;
                 case 3:printf("已返回主页面\n");break;  
                  default:
                 printf("输入错误,返回主界面请重新输入\n");break;
                 }
    }
    int main()
    {
         int x;
         while(1)
         {
             printf("\t********操作选项********\n");
             printf("\t**    1:for语句       **\n");
             printf("\t**    2:数组类型      **\n");
             printf("\t**    3:函数类型      **\n");
             printf("\t**    4:九九乘法表    **\n");
             printf("\t**    5:个人小    **\n");
             printf("\t**    6:图像打印类    **\n");
             printf("\t************************\n");
         scanf("%d",&x);
         printf("\n");
         switch(x)
          {
              case 1: a();break;
              case 2: b();break;
              case 3: c();break;
             case 4: d();break;
             case 5: e();break;
             case 6: f();break;
             default:
            printf("输入错误,请重新输入\n");
            break;
         } 
      }
      return 0;
    }
    int fac(int x)
                    {
                        int a;
                        if(x<0)
                        printf("x<0,data error!");
                        else if(x==0,x==1)
                        a=1;
                        else
                        a=fac(x-1)*x;
                        return(a);
                    }
    int max4(int a,int b,int c,int d)
                    {
                        int max2(int a,int b);
                        int n;
                        n=max2(a,b);
                        n=max2(n,c);
                        n=max2(n,d);
                        return n;
                    }
                    int max2(int a,int b)
                    {
                         if(a>=b)
                           return a;
                         else
                           return b;
                    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月16日
  • 已采纳回答 12月8日
  • 创建了问题 12月8日

悬赏问题

  • ¥15 企业资源规划ERP沙盘模拟
  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答