C语言,这里最后的flag什么意思呢?

这里程序最后的flag什么意思呢?做什么用的啊? 一. 实验目的 1. 提高综合应用流程控制语句(if,switch,while, do-while,for)的能力; 2. 提高对复杂流程结构的程序的编写能力和调试能力; 3. 掌握利用数组的组织存储数据以及一些实用的算法。 二. 实验内容 编写和调试一个具有能对用一维数组建立的顺序表进行各种操作的应用程序。 三. 实验步骤 1.写程序显示如下菜单 1. insert (插入一个数据) 2. delete (删除一个数据) 3. sort (排序) 4. print (输出表中所数据) 0. exit (退出程序) 2. 用scanf函数输入菜单选择的数字(0-4)对其他输入要提示错误信息,用switch语句控制菜单选择,(此时switch语句中可以不写代码,先调试流程控制部分 3.在switch的每个选择分支中添加适当的代码,使程序能够完成要求的操作此时可一次加一个模块这样便于调试。 4.插入和删除都要指定位置,所以在建立一个一维数组保存顺序表的数据以外,还要用一个变量来记录当前表中数据的个数。 答案为: #include<stdio.h> main() { int flag=1,num,t,a[100],unit=0,p,i,j,number; do { printf("1.inser 尀n"); printf("2.delete尀n"); printf("3.sort尀n"); printf("4.print尀n"); printf("0.exit尀n"); scanf("%d",num); scanf("%d",num); switch(num) { case1:printf("have %dnumber尀n"); do {printf("please input position"); scanf("%d",&p);} while(p>unit); printf("please input number"); scanf("%d",&number); for(i=unit-1;i>=p;i--) a[i+1]=a[i]; a[p]=number; unit++;break; case2:printf("have %d number尀n",unit); do{printf("please input position"); scanf("%d",&p);} while(p>=unit); for(i=p;i<=unit-2;i++) a[i]=a[i+1]; unit--;break; case3:for(j=0;j<unit-1;j++) for(i=0;i<unit-1-j;i++) if(a[i]>a[i+1]) {t=a[i]; a[i]=a[i+1];a[i+1]=t;} break; case4:for(i=0;i<=unit-1;i++) printf("%4d",a[i]); printf("尀n"); break; case0:flag=0;break; default: printf("error尀n please input again尀n"); break; } }while(flag==1); }
2026年09月21日 02:32
有2个网友回答
网友(1):

flag标记标志,这里就是用来做一个标记,当flag为0时执行什么,为1时执行什么,便于理解程序。
满意请采纳

网友(2):

用于循环的退出,当输入0的时候switch(num)会执行case0:flag=0;break; 这时候由于flag不等于1,所以退出循环