请问我写的程序哪里出问题了??排序,删除,插入功能实现不了?
#include <stdio.h>int n=8;
void sort(float a[]){
int i,j;
float t;
for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++)
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
int search(float a[],float x){
int i;
for(i=0;i<n;i++)
if(x==a[i])
return i;
return -1;
}
void insert(float a[],float x){
int i,j,t;
for(i=0;i<n;i++)
if(x<a[i])break;
t=i;
for(j=n-1;j>=i;i--){
a[j+1]=a[j];
a[t]=x;
}
}
void delet(float a[],float x){
int i,m;
m=search(a,x);
if(m>=0){
for(i=m;i<n-1;i++)
a[i]=a[i+1];
}
}
void print(float a[],int k){
int i;
for(i=0;i<k;i++)
printf("%f",a[i]);
}
int main(){
float b,m,c,score[50]={78.5,87,68,89.5,92,83.5,86,67};
int t,n,num;
while(1){
printf("0.结束程序 1.排序 2.查找 3.插入 4.删除");
printf("请输入以上数字做选择:");
scanf("%d",&num);
if(num==0) break;
else
switch(num){
case 1:
sort(score);
printf("排序后的结果为:");
print(score,n);
break;
case 2:
printf("请输入要查找的数:");
scanf("%f",&b);
t=search(score,b);
if(t>=0)
printf("%f是下标为%d的数组元素",b,t);
else
printf("查无此数");
break;
case 3:
printf("请输入要插入的数:");
scanf("%f",&m);
insert(score,m);
printf("插入的结果为:");
print(score,n+1);
break;
case 4:
printf("请输入要删除数:");
scanf("%f",&c);
delet(score,c);
printf("删除后的结果为:");
print(score,n-1);
break;
default:
printf("输入有错误,请重新输入!\n");
break;
}
}
}