用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);
}

修改后代码不少于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);
}


目的是裁剪到100行?题目要表达清楚哦

这个代码好像在哪答题过,直接是能跑的代码,配到什么把问题反馈上来,大家给你解决,你这个代码合格的。

程序应该能正常工作的,只是把代码行数变短?

可以加两三个功能,或者多一点case when

少了两个括号闭合,程序运行没有问题:

#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);
        }


?你这个代码本来就可以运行呀,什么意思意思改多点代码吗?

以下是修改后的代码,已在Visual C++ 2010上测试运行通过:

#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_s("%f", &B);
    printf("请输入蓄水后库区延伸长度L(km): ");
    scanf_s("%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");
        scanf_s("%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_s("%f", &change);
    sedimentLevel += change;
    printf("调节后的泥沙含量:%f", sedimentLevel);
    if (sedimentLevel <= 2)
    {
        printf("水闸状态良好,无需进行下一步操作\n");
    }
    else
    {
        printf("泥沙含量过高,堵塞警告,是否清淤");
        printf("1、堵塞警告,完成清淤操作\n");
        printf("2、不管,河床堵塞,下游缺水");
        scanf_s("%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();
        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);
    return 0;
}

这个代码没问题呀 啥问题跟大家说清楚好给你解决

你这个代码没问题,要增加代码行数,可以通过增加一些条件判断、方法多套几层壳等方式