求c语言编程:1~声明有n个元素的一维数组,随机输入n个元素的值,输出n个元素 2~对数组进行排序(

求c语言编程:1~声明有n个元素的一维数组,随机输入n个元素的值,输出n个元素 2~对数组进行排序(由大到小),然后输出各元素的值 3~查找:从键盘输入x值,从数组查找是否存在,如存在则输出所在位置,不存在则输出查无此数 4~将x值插入数组,仍保证数组有序 5~输入x值,将数组中值为x值的数删除 要求:2.3.4.5写成独立函数,在主函数中调用~ 呃,程序有点复杂,先谢谢啦

呵呵,时间不早了,谢谢都睡了,就给楼主送点福利吧。我就一码农,不为分数而来!

想起了8年前我苦心学C语言的艰难,没有电脑,没有师傅,代码都写在草稿纸上的。

希望你能好好学习编程,代码写的很详细了。
多读,多看,多写,多调试。

先贴效果:
1---------随机数组初始化为:
28 95 15 42 43 25 5 10 76 35
2---------数组排序后的结果为:
5 10 15 25 28 35 42 43 76 95
3---------请输入X值,查找是否存在
25
存在第 4 个位置
4---------输入X值,插入数组中。
35
插入后的数组为
5 10 15 25 28 35 35 42 43 76
5---------输入您要删除的元素X
35
5 10 15 25 28 42 43 76 -1 -1
请按任意键继续. . .

再贴源代码:
#include "stdio.h"
#include "conio.h"
#include <time.h>
#include <math.h>
#include<stdlib.h>
//给定数组,打印出来
void printArray(int a[],int n)
{
for(int i=0;i<n;i++)
{
printf("%4d",a[i]);
}
printf("\n");
}
//给定数组 冒泡排序
void bubblesort(int a[],int n)
{
int i,j,temp=0;
for(i=0;i<n;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j]<a[j-1])
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}
//给定数组和要查找的元素,查找是否存在
int isExist(int a[],int key,int n)
{
int pos=-1;
for(int i=0;i<n;i++)
{
if(a[i]==key)
{
pos=i;
break;
}
}
return pos;
}
//给定数组和要插入的元素
void insertArray(int a[],int key ,int n)
{
int pos=-1;//记录要插入的位置
for(int i=0;i<n;i++)
{
if(a[i]>key)
{
pos=i;
break;
}
}
//从最后一个开始,元素后移动,数组长度不够,最后一个会丢失的
if(pos>=0&&pos<n)
{
for(int i=n;i>pos;i--)
{
a[i]=a[i-1];
}
a[pos]=key;
}
}
//给定数组和要删除的值key 删除所有和key相等的值
void deleteArray(int a[],int key,int n)
{
int k=-1;
for(int i=0;i<n;i++)
{
if(a[i]==key)
{
//找到要删除的元素 从后往前覆盖
for(k=i;k<n-1;k++)
{
a[k]=a[k+1];
}
a[k]=-1;//最后用-1 替换掉
i=i-1;//推回一格,重复的元素也要删除掉
}
}
}
main()
{
int a[10]={0};
int x=0,pos=-1;
time_t t;
srand((unsigned)time(&t));

//随机初始化数组
for(int i=0;i<10;i++)
{
a[i]=rand()%100+1;
}
printf("\n1---------随机数组初始化为:\n");
printArray(a,10);

printf("\n2---------数组排序后的结果为:\n");
bubblesort(a,10);
printArray(a,10);

printf("\n3---------请输入X值,查找是否存在\n");
scanf("%d",&x);
pos=isExist(a,x,10);
if(pos==-1)
printf("不存在!\n");
else
printf("存在第 %d 个位置\n",pos+1);

printf("\n4---------输入X值,插入数组中。\n");
scanf("%d",&x);
insertArray(a,x,10);
printf("插入后的数组为\n");
printArray(a,10);

printf("\n5---------输入您要删除的元素X\n");
scanf("%d",&x);
deleteArray(a,x,10);
printArray(a,10);

system("pause");
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-13
给你写好了,明天发上来,现在电脑断网了