33,311
社区成员
发帖
与我相关
我的任务
分享
for(//初始条件;//终止判断条件;//每次循环结束执行操作)
{
//循环体
//初始条件可以放在循环外面,所以可以为空
//终止判断条件为空的话就为进入无限循环
//最后一个操作也可以为空,或者放在循环体内执行
}
include"stdio.h"
/*菜单*/
int Menu_Select()
{
char s;
int cn;
printf("1:StoreData\n");
printf("2:PrintData\n");
printf("3:SumData\n");
printf("4:SortData\n");
printf("5:LocateData\n");
printf("6:NumData\n");
do
{
s = getchar();
cn = int(s) - 48;
}
while(cn < 0 || cn >6);
return cn;
}
/*查找某个数在数组中的个数*/
int NumData(int a[],int k,int j)
{
int i;
int n = 0;
for(i = 0;i < k;i ++ )
if(a[i] == j )
n++;
return n;
}
/*利用冒泡排序法给数从小到大排序*/
void SortData(int a[],int k)
{
int i,j,t;
for(i = 0; i < k - 1;i ++)
for(j = 0;j < k - i - 1; j ++)
if(a[j] > a[j + 1])
{
t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
/*定位某数在数组中的位置*/
int LocateData(int a[],int k,int j)
{
int i,n;
for(i = 0;i < k;i ++)
if( j == a[i])
{n = i;break;}
else
n = -1;
return n+1;
}
/*对所有数求和*/
int SumData(int a[],int k)
{
int i,s = 0;
for(i = 0;i < k;i ++)
s = s + a[i];
return s;
}
/*储存数据*/
void StoreData(int a[],int k)
{
int i;
for(i = 0;i < k;i ++)
scanf("%d",&a[i]);
return;
}
/*输出数据*/
void PrintData(int a[],int k)
{
int i;
for(i = 0;i < k;i ++)
printf("%d ",a[i]);
printf("\n");
return;
}
int main(int argc, char* argv[])
{
int i,k[6], m = 5,sum = 0,j=0,p =0,x = 10,t = 7,l;
for(;;) // the position of error
{
switch(Menu_Select())
{
case 1: StoreData(k,m);break;
case 2: PrintData(k,m);break;
case 3: sum = SumData(k,m);
printf("the sum = %d\n",sum);
break;
case 4: SortData(k,m);
for(i = 0;i < m;i ++)
printf("%d ",k[i]);
printf("\n");
break;
case 5: j = LocateData(k,m,x);
printf("%d is in no.%d\n",x,j);
break;
case 6: NumData(k,m,t);
l = NumData(k,m,t);
printf("the number of %d is %d\n",t,l);
break;
default:printf("see you!!!!!");
}
}
return 0;
}