求各位大神帮忙看一下,怎么编写主调函数啊?插入删除查找我写出来了(如图),第一个插入函数好像有点错误,运行结果错了一点点,能帮忙指出错误吗?谢谢!
}
}
你最好贴源代码,还能给改一改
for循环条件改为i>=k,位置k的元素也要后移,这样覆盖k位置的时候才不会丢失数据
第一个插入函数已改正,求解怎么写主调函数,调用插入,删除,查找三个函数,谢谢各位伙伴儿!
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
int inx;
void insert(){
int a[10],i,k,x;
printf("请输入9个数据元素:\n");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
printf("请输出数组中的元素:\n");
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入插入位置k:\n");
scanf("%d",&k);
printf("请输入插入的数据元素x:\n");
scanf("%d",&x);
for(i=8;i>=k;i--)
a[i+1]=a[i];
a[k]=x;
printf("请输出插入后数组中的数据元素:\n");
for(i=0;i<10;i++)
printf("%d \n",a[i]);
}
void deleted(){
int a[10],i,j;
printf("请输入9个数据元素:\n");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
printf("请输出数组中的元素:\n");
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入删除的位置j:\n");
scanf("%d",&j);
for(i=j;i<9;i++)
a[i-1]=a[i];
a[9]=0;
printf("请输出删除后数组中的数据元素:\n");
for(i=0;i<8;i++)
printf("%d ",a[i]);
printf("\n");
}
void look(){
int a[10],i,n;
printf("请输入9个数据元素:\n");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
printf("请输出数组中的元素:\n");
for(i=0;i<9;i++)
printf("%d ",a[i]);
printf("\n");
printf("请输入要查找的数字n:\n");
scanf("%d",&n);
for(i=0;i<9;i++)
{
if(a[i]==n){
printf("该数在数组中所处的位置是第%d个数字\n",i+1);
continue;}
else if(i==9)
printf("没有找到!\n");
}
}
void main(){
loop: printf("请输入对应的数字执行选项\n");
printf("1.插入\n2.删除\n3.查找\n");
scanf("%d",&inx);
if(inx<0||inx>3){
printf("输入错误,请重新输入\n");
system("pause");
system("cls");
goto loop;
}
switch(inx){
case 1: insert();
break;
case 2:deleted();
break;
case 3:look();
break;
}
system("pause");
system("cls");
goto loop;
}
思路大概就这样,具体细节你自己去优化和处理