注册 登录
编程论坛 C语言论坛

编程新手,这个实属不会,请大神赐教,题目要求在附件里

范泽阳 发布于 2019-12-05 00:00, 1484 次点击
#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]);
}
只有本站会员才能查看附件,请 登录

2 回复
#2
bcbbcclbbc2019-12-05 16:00
新手就接触这么复杂的题,还是看点其他的吧
问问题,题目要求哪里不会,简洁说明。

看到这么长的一串,谁有大把时间耗费在此,直接扔题目是很不负责的表现。
#3
范泽阳2019-12-06 08:52
回复 2楼 bcbbcclbbc
我们C语言老师布置的作业😭
1