小马邦德 2023-06-01 20:57 采纳率: 100%
浏览 111
已结题

用c语言使以下代码在visualc++2010上运行起来,修改后代码不少于100行。

#include<stdio.h>
#include<stdlib.h>
int waterLevel=145,choice;
double sedimentLevel=1.19;
void viewWaterLevel()
{  
   printf("当前水位高度:%d\n",waterLevel);
   printf("完成功能1!\n\t");
}
void viewSediment(){
    printf("当前泥沙含量:%.2f\n",sedimentLevel);
    printf("完成功能2!\n\t");
    
}
void adjustWaterLevel()
{
    float V,B,L,H,K,H0=145;
    V=104;
    printf("请输入坝址处河谷宽度B(m): ");
    scanf("%f",&B);
    printf("请输入蓄水后库区延伸长度L(km): ");
    scanf("%f",&L);
    K=27;
    H=(K*V)/(B*L);
    printf("水位计算结果:H=%.2f m\n",H);
    if(H<H0)
    {printf("库区安全,无需进一步操作\n");}
    else
    {
    printf("水位过高,存在涨潮风险,请选择进一步操作\n");
    printf("1、开闸放水,成功泄洪并退出程序\n");
    printf("2、不管,发生洪涝灾害,危害下游\n");
    int choice;
    scanf("%d",&choice);
    switch (choice)
    {
      case 1:printf("开闸放水,成功泄洪\n");
             break;
      case 2:printf("不管,发生洪涝灾害,危害下游\n");
             break;
      default:printf("无效的选择,退出程序\n");
             break;
    }
    printf("完成功能3!\n\t");
}
void adjustSedimentLevel()
{
    float change;
    printf("请输入要调节的泥沙含量(正表示增加,负表示减少): ");
    scanf("%f",&change);
    sedimentLevel+=change;
    printf("调节后的泥沙含量:%f",sedimentLevel);
    if(sedimentLevel<=2)
    {printf("水闸状态良好,无需进行下一步操作\n");}
    else
        {printf("泥沙含量过高,堵塞警告,是否清淤");
    printf("1、堵塞警告,完成清淤操作\n");
    printf("2、不管,河床堵塞,下游缺水");
    int choice;
    scanf("%d",&choice);
    switch(choice)
    {
      case 1:printf("清淤完成,退出程序\n");
          break;
      case 2:printf("河床堵塞,下游缺水,退出程序\n");
          break;
      default:printf("无效的选择,退出程序\n");
          break;
    }
    printf("完成功能4!\n\t");
}
void good_bye()
{printf("\n\n\t 感谢使用,再见!");getchar();}
int menu_select()
{ char c; int n;
  printf("\n********************程序主界面********************");
  printf("\n\t1.查看水位高度\n");
  printf("\t2.查看泥沙含量\n");
  printf("\t3.输入水位高度\n");
  printf("\t4.输入泥沙含量\n");
  printf("\t5.退出本程序\n");
  printf("************************************************\n");
  printf("请输入数字1-5\n");
  c=getchar();
  if(c=='\n')
       c=getchar();
  n=c-48;
  while((n<1)||(n>5)) {
    printf("\n\t\t\t未输入1-4之间的有效数字,请重新输入:");
    c=getchar();
    n=c-48;
    while(c=='\n')
    c=getchar();
    n=c-48;
  }
  return(n);
}
void main()
{ int k;
  do{ k=menu_select();
      switch(k)
      { case 1: viewWaterLevel();break;
        case 2: viewSediment();break;
        case 3: adjustWaterLevel();break;
        case 4: adjustSedimentLevel();break;
        case 5: good_bye();exit(0);
      }
    } while(k!=5);
}

  • 写回答

10条回答 默认 最新

  • Watch the clown 2023-06-01 20:58
    关注

    修改后代码不少于100行?你总共才多少,我的ide带了插件,没发现有什么错误,可能补全了一些括号小问题

    img

    #include<stdio.h>
    #include<stdlib.h>
    
    int waterLevel=145,choice;
    double sedimentLevel=1.19;
    
    void viewWaterLevel()
    {
       printf("当前水位高度:%d\n",waterLevel);
       printf("完成功能1!\n\t");
    }
    
    void viewSediment()
    {
        printf("当前泥沙含量:%.2f\n",sedimentLevel);
        printf("完成功能2!\n\t");
    }
    
    void adjustWaterLevel()
    {
        float V,B,L,H,K,H0=145;
        V=104;
        printf("请输入坝址处河谷宽度B(m): ");
        scanf("%f",&B);
        printf("请输入蓄水后库区延伸长度L(km): ");
        scanf("%f",&L);
        K=27;
        H=(K*V)/(B*L);
        printf("水位计算结果:H=%.2f m\n",H);
        if(H<H0)
        {
            printf("库区安全,无需进一步操作\n");
        }
        else
        {
            printf("水位过高,存在涨潮风险,请选择进一步操作\n");
            printf("1、开闸放水,成功泄洪并退出程序\n");
            printf("2、不管,发生洪涝灾害,危害下游\n");
            int choice;
            scanf("%d",&choice);
            switch (choice)
            {
                case 1:
                    printf("开闸放水,成功泄洪\n");
                    break;
                case 2:
                    printf("不管,发生洪涝灾害,危害下游\n");
                    break;
                default:
                    printf("无效的选择,退出程序\\n");
                    break;
            }
            printf("完成功能3!\n\t");
        }
    }
    
    void adjustSedimentLevel()
    {
        float change;
        printf("请输入要调节的泥沙含量(正表示增加,负表示减少): ");
        scanf("%f",&change);
        sedimentLevel+=change;
        printf("调节后的泥沙含量:%f",sedimentLevel);
        if(sedimentLevel<=2)
        {
            printf("水闸状态良好,无需进行下一步操作\n");
        }
        else
        {
            printf("泥沙含量过高,堵塞警告,是否清淤");
            printf("1、堵塞警告,完成清淤操作\n");
            printf("2、不管,河床堵塞,下游缺水");
            int choice;
            scanf("%d",&choice);
            switch(choice)
            {
                case 1:
                    printf("清淤完成,退出程序\n");
                    break;
                case 2:
                    printf("河床堵塞,下游缺水,退出程序\n");
                    break;
                default:
                    printf("无效的选择,退出程序\n");
                    break;
            }
            printf("完成功能4!\n\t");
        }
    }
    
    void good_bye()
    {
        printf("\n\n\t 感谢使用,再见!");
        getchar();
    }
    
    int menu_select()
    {
        char c; int n;
        printf("\n********************程序主界面********************");
        printf("\n\t1.查看水位高度\n");
        printf("\t2.查看泥沙含量\n");
        printf("\t3.输入水位高度\n");
        printf("\t4.输入泥沙含量\n");
        printf("\t5.退出本程序\n");
        printf("************************************************\n");
        printf("请输入数字1-5\n");
        c=getchar();
        if(c=='\n')
           c=getchar();
        n=c-48;
        while((n<1)||(n>5))
        {
            printf("\n\t\t\t未输入1-4之间的有效数字,请重新输入:");
            c=getchar();
            n=c-48;
            while(c=='\n')
            c=getchar();
            n=c-48;
        }
        return(n);
    }
    
    int main()
    {
        int k;
        do
        {
            k=menu_select();
            switch(k)
            {
                case 1:
                    viewWaterLevel();
                    break;
                case 2:
                    viewSediment();
                    break;
                case 3:
                    adjustWaterLevel();
                    break;
                case 4:
                    adjustSedimentLevel();
                    break;
                case 5:
                    good_bye();
                    exit(0);
            }
        } while(k!=5);
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(9条)

报告相同问题?

问题事件

  • 系统已结题 6月16日
  • 已采纳回答 6月8日
  • 请回答用户的提问 6月2日
  • 创建了问题 6月1日