例如:给定一个一维数组 a[10]={1,78,63,5,14,79,36,45,1,45},
1、要求插入一个数据以及一组数据(前提是有序数组)
2、查找某个元素是否存在 。1)顺序查找 2)二分查找
3、在一维数组中删除相同的元素并排序
可进行先删除相同或的元素在排序,也可先排序再删除相同的元素
4、排序 (排序算法很多,就选经典的冒泡算法,插入排序)
#include
#define M 100
int main(){
int a[M]={1,78,63,5,14,79,36,45,1,45};
int x,i,j,k ,temp;
//先对无序的数组元素排序
for(i=0;i<10;i++){
for(j=0;j<10-i-1;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n需要插入的数:\n");
scanf("%d",&x);
j=0;
while(a[j]<=x)j++;
for(k=10;k>=j;k--){ //比x大的元素后移
a[k+1]=a[k];
}
a[j]=x;
//打印输出
for(i=0;i<11;i++){
printf("%d ",a[i]);
}
}
#include
#define M 100
int main(){
int a[M]={1,78,63,5,14,79,36,45,1,45};
int c[M];
int x,i,j,k ,temp,m=0;
for(i=0;i<10;i++){
for(j=0;j<10-i-1;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n需要插入的数:输入-1结束!\n");
scanf("%d",&x);
while(x!=-1){
c[m++]=x;
scanf("%d",&x);
}
for(i=0;i=a[j])j++;
for(k=10+m;k>=j;k--){
a[k+1]=a[k];
}
a[j]=c[i];
}
for(i=0;i<10+m;i++){
printf("%d ",a[i]);
}
}
#include
int fun(int a[],int n,int k){
int i;
while(i
#include
//对数组元素排序
consort(int a[]){
int t,j,i;
for(i=1;i<10;i++){
if(a[i]=0&&tk){
high=mid-1;
}else{
low=mid+1;
}
}
return 0;
}
int main(){
int a[10]={1,78,63,5,14,79,36,45,1,45};
int k;
printf("请输入要查找的数:\n");
scanf("%d",&k);
if(fun(a,10,k)){
printf("查找成功!");
}else{
printf("不存在该数据!");
}
}
#include
int main(){
int a[10]={1,78,63,5,14,79,36,45,1,45};
int c[10];//存入a数组元素各不相同的元素
int i,j,k,temp;
for(i=0;i<10;i++){
c[i]=0;
}
i=1;
c[0]=a[0];k=1;
for(;i<10;i++){
j=0;
while(jc[j+1]){
temp=c[j];
c[j]=c[j+1];
c[j+1]=temp;
}
}
}
for(i=0;i
#include
int main(){
int a[10]={1,78,63,5,14,79,36,45,1,45};
int i,j,temp,k=0;
for(i=0;i<10;i++){
for(j=0;j<10-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
printf("\n");
for(i=1;i<10;i++){
if(a[i]==a[i-1]){
k++;
}else{
a[i-k]=a[i];
}
}
for(i=0;i<10-k;i++){
printf("%d ",a[i]);
}
}
#include
int main(){
int a[10]={1,78,63,5,14,79,36,45,1,45};
int i,j,temp;
for(i=0;i<10;i++){
for(j=0;j<10-i;j++){
if(a[j]>a[j+1]){
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
}
#include
int main(){
int a[10]={1,78,63,5,14,79,36,45,1,45};
int t,j,i;
for(i=1;i<10;i++){
if(a[i]=0&&t