最近马上要期末考试了,有道题自己编的时候出了下问题,有知道怎么解决的能帮我下吗??谢谢了。。。。
题目是:用C语言编出下列要求
(1)输出一位数组中下标是4的倍数的元素;
(2)自左至右在一维数组中找第一个值为key的元素的下标;
(3)将一位数组中的元素按与原先存储顺序相反的顺序重新存储;
我编的代码如下:
#include <stdio.h>
#define n 5
void main()
{ int a[n],i,t,j,key,m;
char ans;
for(i=0;i<n;i++) a[i]=i+1; //这是满足第一个要求的代码
printf("该数组a[]=");
for(i=0;i<n;i++)
printf("%4d",a[i]);
printf("/n");
for(i=0;i<n;i+=4)
printf("数组中下标是4的倍数的元素%d",a[i]);
i=0; //这是满足第二个要求的代码
while(1)
{
printf("/n请输入要查找的数: ");
scanf("%d",&key);
i=0;j=n-1;
while(i<=j)
{
m=(i+j)/2;
if(key==a[m])break;
if(key>a[m]) i=m+1;
else j=m-1;
}
if(i<=j)
printf("找到,对应的下标是%d/n/n",m);
else
printf("无此数!/n/n");
printf("是否继续做查找操作(Y/N)?");
scanf("%d",&ans);
if(ans=='N'||ans=='n') break;
}
for(i=0;i<n;i++) //这是满足第三个要求的代码
printf("%4d",a[i]);
printf("/n");
i=0;
while(i<n-i-1)
{
t=a[i];a[i]=a[n-i-1];a[n-i-1]=t;i++;
}
printf("逆序后的数组a[]=");
for(i=0;i<n;i++)
printf("%4d",a[i]);
printf("/n");
}
如果有谁知道问题在哪里的话,请帮我指点指点,谢谢!!!