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);
}
*/