#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);
}
用c语言使以下代码在visualc++2010上运行起来,修改后代码不少于100行。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
10条回答 默认 最新
Watch the clown 2023-06-01 20:58关注修改后代码不少于100行?你总共才多少,我的ide带了插件,没发现有什么错误,可能补全了一些括号小问题

#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); }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用