程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言問答 >> C語言綜合作業

C語言綜合作業

編輯:C語言問答

C語言綜合作業

20 要求一維數組的排序、查找、刪除、插入在一個程序內實現。就是用函數啦

最佳回答:

#include<stdio.h>
#define N 10
int main()
{
 int sort(int *x,int n);     //聲明排序函數
 int search(int *a,int n,int x);  //聲明查找函數
 int _delete(int *a,int n,int x); //聲明刪除函數
 int i,a[N],*p1=a;
 int b[N],m,*p2=b;
 int number,t1,t2;
 printf("請向數組輸入10個整數:");
 for(i=0;i<N;i++)
 scanf("%d",p1++);
 printf("the original array:\n");
 for(p1=a;p1<a+N;p1++)
 printf("%5d",*p1);
 printf("\n");
 p1=a;
 sort(p1,N);//調用排序函數
 printf("the sorted array:\n");
 for(;p1<a+10;p1++)
 printf("%5d",*p1);
 printf("\n");
 printf("輸入一個你想要查找的數:\n");
 scanf("%d",&number);
 p1=a;
 t1=search(p1,N,number);//調用查找函數
 if(t1==0)
  printf("查找失敗,無法繼續刪除數字!\n");
 else
 {
  t2=_delete(p1,N,t1);//調用刪除函數
  printf("查找成功的數組元素%d已被刪除:\n",t2);
 printf("刪除後的新數組元素為:\n");
 for(i=0;i<N-1;i++)
  printf("%5d ",*p1++);
    printf("\n");
 printf("請插入一個整數 m:");
 scanf("%d",&m);
 p1=a;p2=b;
 for(i=0;i<10;i++)
 *(p2+i)=*(p1+i);
 *(p2+N-1)=m;
 sort(p2,N);
 printf("最終的數組元素為:\n");
 for(i=0;i<N;i++)
 printf("%5d",b[i]);
 }
 printf("\n");
}

int sort(int *x,int n)
{
 int i,j,k,temp;
 for(i=0;i<n-1;i++)
 {
  k=i;
  for(j=i+1;j<n;j++)
  if(*(x+j)<*(x+k))
  {
   k=j;
  }
  if(k!=i)
  {
   temp=*(x+k);
   *(x+k)=*(x+i);
   *(x+i)=temp;
  }
 }
  return 0;
}
int search(int *a,int n,int x)
{
 int s=0,k,i;
 for(i=0;i<n;i++)
 if(a[i]==x)
 {
  s=a[i];k=i+1;
 }
 if(s==x)
 {
  printf("%d已被找到,它的位置是:%d\n",s,k);
 }
     else printf("查找失敗:\n");
     return s;
}
int _delete(int *a,int n,int x)
{
 int i,j=0,m;
 for(i=0;i<n;i++)
 if(a[i]!=x)a[j++]=a[i];
 a[j]='\0';
 m=x;
 return m;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved