c语言 用一维数组存储由键盘输入的一组正整数(约20个). 再输入整数x.

用一维数组存储由键盘输入的一组正整数(约20个).再输入整数x.如果数组中已经包含x,则删除它;否则按次序将x插入数组.假设在输入数据(x除外)时能够保证:每个数据都不超... 用一维数组存储由键盘输入的一组正整数(约20个). 再输入整数x. 如果数组中已经包含x, 则删除它; 否则按次序将x插入数组.假设在输入数据(x除外) 时能够保证: 每个数据都不超过100, 数据无序, 且互不相同.
【要求】
1 数据的输入输出, 排序, 查找, 插入数据, 删除数据等功能必须用函数实现, 且每个函数只能实现一个功能
2 排序必须使用选择排序法
3 查找必须使用折半查找法
4 排序, 删除, 插入等操作前后须输出数组中的内容, 以便比对操作效果
5 不得使用全局变量
6 在输入和输出数据之前必须要有英文的提示信息
展开
 我来答
suer2008
推荐于2017-07-19
知道答主
回答量:13
采纳率:0%
帮助的人:6.8万
展开全部
闲来没事,给你写段程序,不知道是不是符合你的要求:
#include <stdio.h>
#include <conio.h>
main()
{int i,j,temp,num[20],num_chuli;
clrscr();
printf("qing shu ru 20 ge shuju!\n ") ;/*输入数据 */
for(i=0;i<20;i++)
{
printf("\ndi %d ge shuju:",i+1);
scanf("%d",&num[i]);
}
for(i=0;i<20;i++)/* 数据从小到大排列,必须的,如果数据无须则以后的按顺序插入没有意义*/
for(j=i+1;j<20;j++)
{if (num[j]<num[i])
{temp=num[i];
num[i]=num[j];
num[j]=temp;
}
}
clrscr();
printf("\npai xu hou de shu ju ru xia:\n");/* 显示输入的数据排序后结果*/
for(i=0;i<20;i++)
printf(" %d",num[i]);
printf("\nqing shu ru yao chu li de shuju:");/* 输入要处理的数据*/
scanf("%d",&num_chuli);
for(i=0;i<20;i++) /* 数据处理*/
{if (num[i]==num_chuli)
{num[i]=-1;/* -1代表数据删除,如果删除后还需排序,请自行解决*/
break;
}
else if(num[i]>num_chuli)/* 如果数据不存在,则插入该数据,数组最后的数据将丢失*/
{temp=num[i];
num[i]=num_chuli;
num_chuli=temp;
}
}
printf("\nchu li hou de shu ju ru xia:");/* 显示结果*/
for(i=0;i<20;i++)
printf(" %d,",num[i]);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式