请帮我把这c语言程序补充完整万分感谢

2024-11-30 18:52:49
推荐回答(5个)
回答1:

void find(int *a,int key)
{
int index;
for(index=0;index<10;index++)
{
if(a[index]==key) //查找
{
printf("key的下标是:%d\n",index);
return; //找到key则返回
}
}
printf("key未找到。\n");
}

void move(int *a)
{
int temp;
int index;
temp=a[9];
for(index=9;index>0;index--) //移动元素
{
a[index]=a[index-1];
}
a[0]=temp;

printf("移动后的数组:"); //输出移动后的数组
for(index=0;index<10;index++)
printf("%d ",a[index]);

}

/************************************************************
直接打的代码 没调试 不过应该没问题

如果编译器不支持中文就把中文改成英文就ok
************************************************************/

回答2:

//////////////////有疑问请追问 满意记得采纳哦///////////////////////

------------------------------
输入选项编号(1-2)
--------请补充------------
1-查找请补充
2-移动请补充
-------请补充--------------
1
10
下标为:8。
Press any key to continue
/////////////////////////////////////////////////////////////////////
-----------------------------
输入选项编号(1-2)
--------请补充------------
1-查找请补充
2-移动请补充
-------请补充--------------
1

12
找不到!
Press any key to continue
/////////////////////////////////////////////////////////////////////
------------------------------
输入选项编号(1-2)
--------请补充------------
1-查找请补充
2-移动请补充
-------请补充--------------
2
4 3 5 1 2 7 9 8 6 10
Press any key to continue

#include
#include

void find(int*a,int key);
void move(int*a);
main()
{
int a[10]={3,5,1,2,7,9,8,6,10,4},key;
char c='\0';
printf("------------------------------\n");
printf(" 输入选项编号(1-2) \n");
printf("--------请补充------------ \n");
printf(" 1-查找请补充 \n");
printf(" 2-移动请补充 \n");
printf(" -------请补充--------------\n");
c=getche();
printf("\n");;
switch(c)
{
case '1':scanf("%d",&key);
find(a,key);
break;
case '2':move(a);
break;
}
}

void find(int*a,int key)
{
int i,flag=0;
for (i=0;i<10;i++)
{
if (a[i]==key)
{
printf("下标为:%d。\n",i);
flag=1;
break;
}
}
if (!flag)
{
printf("找不到!\n");
}
}

void move(int*a)
{
int i,tmp;
tmp=a[9];
for (i=9;i>=0;i--)
{
a[i]=a[i-1];
}
a[0]=tmp;
for (i=0;i<10;i++)
{
printf("%d ",a[i]);
}
printf("\n");
}

回答3:

void find(int*a,int key)
{
int i=0;
while(a[i])
{
if(a[i]==key)printf("%d\n",i);
else i++;
}
printf("cannot find!\n");
}

void move(int*a)
{
int i=0,temp,len;
while(a[i++])
i--;
temp=a[i];
len=i;
for(i=0;i{
a[i+1]=a[i];
}
a[0]=temp;
for(i=0;i}
手打谢谢采纳!楼上的函数里并没有指明数组长度,数组长度只在调用时才确定,多以不能for(i;i<10;i++)

回答4:

void find(int*a,int key)
{
if(a==null) return;
bool bFind = false;
int i=0;
for(i=0;i<10;i++)
{
if(a[i]==key)
{ bFind = true;break;}
}
if(bFind)//找到
{
prinft("i=%d\n",i);
}else
{
prinft("No Find");
}
}

void move(int*a)
{
if(a==null) return;
int nTmp = a[9];
for(int i=9;i>0;i--)
{
a[i] = a[i-1];
}
a[0] = nTmp;

}

回答5:

而随后费id号i