c语言心得-----数组中对元素的操作排序,查找,插入,和删除

来源:互联网 发布:南京浦口行知基地军训 编辑:程序博客网 时间:2024/05/23 19:21

c语言心得-----数组中对元素的操作排序,查找,插入,和删除

献给曾经和我一样的菜鸟

材料来源:http://blog.sina.com.cn/u/497dc9a1010004t6


                                                                                                    
                 
////////////////////////////////////////////////////////////
//数组的顺序(降序排序)模块//////
///////////////////////////////////////////////////////////
/*
#include<stdio.h>
#define n 100
main(){
int a[n],i,j,t;
int k;
printf("请输入数组大小:");
scanf("%d",&k);
for(i=0;i<k;i++){
printf("请输入a[%d]元素的值:",i);
scanf("%d",&a
);}
for(i=0;i<k;i++){
    for(j=0;j<=k-i-1;j++){
         if(a[j]<a[j+1]){
            t=a[j];
            a[j]=a[j+1];
            a[j+1]=t;}
    }
 
}
printf("降序排序后的顺序为:/n");
for(i=0;i<k;i++){printf("%d",a
);}
}*/

/////////////////////////////////////////////////////
//数组元素查找模块///////////////////
/////////////////////////////////////////////////////
必须考虑问题:重复的元素!
/*#include<stdio.h>
main(){
  int i,j, k;
  int a[50];
  int search;
printf("请输入数组长度:");
scanf("%d",&k);
for(i=0;i<k;i++){
printf("请输入a[%d]的值:",i);
scanf("%d",&a
);}

printf("请输入您要查找的数:");
scanf("%d",&search);
for(i=0;i<k;i++){
     if (search==a
){break;}

}
for(i=0;i<k;i++){                  //查找有重复的数的情况!
if (search==a
)
    if(i<k)
printf("你所要找的数在第%d位/n",i+1);
else
printf("很抱歉,没有您要找的数!");
}
}*/

/////////////////////////////////////////////////////////////////////
//元素的插入模块!//////////////////////////////////
////////////////////////////////////////////////////////////////////
必须考虑问题:插入后的排序
/*#include<stdio.h>
#define n 100
main(){
int a[n],i,j,l,t;
int k;
int in;
printf("请输入数组大小:");
scanf("%d",&k);
for(i=0;i<k;i++){
printf("请输入a[%d]元素的值:",i);
scanf("%d",&a
);}
for(i=0;i<k;i++){
for(j=0;j<=k-i-1;j++){
  if(a[j]<a[j+1]){
      t=a[j];
      a[j]=a[j+1];
      a[j+1]=t;}
}
 
}
printf("降序排序后的顺序为:/n");
for(i=0;i<k;i++){printf("%d ",a[i]
);}
printf("请输入要插入的元素");
scanf("%d",&in);
for(i=0;i<k;i++)
{
  if(in>a
)break;}
for(l=k;l>i;l--)//循环到i的地方停止搜索,找到位置,然后插入,然后后面的元素后移
{a[l]=a[l-1];}
a
=in;//插入元素in在正确的位置
printf("/n插入的数组元素是:%d/n",in);
printf("重新排序后的元素顺序是:");
for(i=0;i<k+1;i++)
{
printf("%d   ",a
);

}
printf("/n");

}*/
////////////////////////////////////////////////////////
/////元素删除模块///////////////////////////
////////////////////////////////////////////////////////
必须考虑问题:删除相同的元素
/*#include<stdio.h>
#define n 100
main(){
int a[n],i,j,t;
int m=0;
int k;
int d;//要删除的元素!
char c;//接受用户输入字符!
printf("请输入数组大小:");
scanf("%d",&k);
for(i=0;i<k;i++){
printf("请输入a[%d]元素的值:",i);
scanf("%d",&a
);}
for(i=0;i<k;i++){
for(j=0;j<=k-i-1;j++){
  if(a[j]<a[j+1]){
       t=a[j];
       a[j]=a[j+1];
       a[j+1]=t;}
}
 
}
printf("降序排序后的顺序为:/n");
for(i=0;i<k;i++){printf("%d ",a
);}
printf("请输入要删除的元素:");
scanf("%d",&d);
m=0;
for(i=0;i<k;i++)
{
  if (d==a
)
{

for(j=i;j<k;j++)a[j]=a[j+1];
m=m+1;
--i;
 }
 }
  printf("重新排序后的顺序是:/n");
  for(i=0;i<k-m;i++)
  printf("%d ",a
);
}

*/