编程新手,这个实属不会,请大神赐教,题目要求在附件里
#include <stdio.h>#include <stdio.h>
#define Max 100
int del(int arr[],int n,int i);
int find(int arr[],int n,int x);
int getData(int arr[]);
int saveData(int arr[],int n);
int insertX(int*pa ,int n, int x);
void SelectSort(int a[], int n);
void pntArray(int arr[],int n);
int main()
{
}
int find(int arr[],int n,int x)
{ int i;
for(i=0;i<n;i++)
if(x==arr[i]) return i;
return -1;
}
int del(int arr[],int n,int i)
{ int j;
for(j=i+1;j<n;j++)
arr[j-1]=arr[j];
return n-1;
}
int getData(int arr[])
{ FILE *fp;
int n=0;
if((fp=fopen("data.txt","r"))==NULL)
{ printf("can not open file!");
return -1;
}
while(!feof(fp))
fscanf(fp,"%d",&arr[n++]);
fclose(fp);
return n-1;
}
int saveData(int arr[],int n)
{ FILE *fp;
int i;
if((fp=fopen("result.txt","w"))==NULL)
{ printf("can not open file!");
return 0;
}
for(i=0;i<n;i++)
fprintf(fp,"%5d",arr[i]);
fclose(fp);
return 1;
}
int insertX(int*pa ,int n, int x)
{
int i,j;
for(i=n-1;i>=0;i--) //在升序数组中,从后向前查找插入位置
if(x>*(pa+i)) //*(pa+i)即为pa[i],下标i+1处即为插入位置
{
break;
}
for(j=n-1;j>=i+1;j--)
*(pa+j+1)=*(pa+j);
*(pa+i+1)=x; //插入在i+1下标位置
return n+1;
}
void SelectSort(int a[], int n)
{ int i, j, index, t; /*index为某趟比较中记录最小元素的下标*/
for (i=0; i<n-1; i++) /*n-1趟:找出的最小值与i位置元素交换*/
{ /*在下标i+1~n范围内选最小元素,由index记录该元素的下标*/
index=i;
for( j=i+1;j<n ; j++)
if ( a[j] < a[index]) index=j;
/*选出的最小元素(index下标)与i下标的元素交换*/
{ t=a[index]; a[index]=a[i]; a[i]=t;}
}
}
void pntArray(int arr[],int n)
{
int i;
for(i=0;i<n;i++)
printf("%d\t",arr[i]);
}