c语言输入三个数排序插入法排序,要求使输入数字从大到小排序,

[切换科目]
以下试题来自:
填空题【说明2.1】
以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。
【函数2.1】
void fun1 (int a[])
int i,j,k,r,x,m;
for(i=2;i<=n;i++)
k=1;r=i-1;
while(k<=r)
m=(k+r)/2;
if(x<a[m])r=m-1;
else (2) ;
for(j=i-1;j>=k;j--)
a[j+l]=a[j];
【说明2.2】
以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。
【程序2.2】
#include<stdio.h>
charb[16]={’0’,’l’,’2’,’3 ,4,’5’,’6’,’7’,’8’,’9’,’A’,’B’,’C’,’D’,’E’,’F’};
int c[64],d,i=0,
printf("enter a number:\n");
scanf("%1d",&n);
printf("enter new basc:\n");
scanf("%d", &base);
c[i]= (4) ;
} while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
printf("%c", (5) );
} 参考答案x=a[i] (2)a[k]=x (3)k=m+1 (4) n% base
为您推荐的考试题库
你可能感兴趣的试题
1.填空题 参考答案x*x (2)x->t (3)│t│:ε
(4)s+2->s
热门相关试卷
最新相关试卷关于C语言的问题,位数大小排序(掌握数值排序算法)(1)位数大小排序(掌握数值排序算法)程序说明:输入一个五位整数,对此整数中的五个数值进行从大到小的顺序排序,形成一个新的五位整数,并输出这个整数.要求:用函数调用.
楼主你好!&&&&&&&&我真心没听说过数值排序算法!&&&&&&&&但是根据你的题目,我实现如下:#include&stdio.h&int fun(int n)&{&&int a[5];&&int sum = 0;&&for(int i = 0;i & 5;i++)&&&{&&&&a[i] = n%10;&&&&n /=10;&&&}&&&&for(int i = 0;i & 5;i++)&&&for(int j= 0;j & 4-i;j++)&&&&{&&&&&&&&&&if(a[j] & a[j+1])&&&&&&{&&&&&&&temp = a[j];&&&&&&&a[j] = a[j+1];&&&&&&&a[j+1] =&&&&&&}&&&&}&&&&& for(int i =0;i & 5;i++)&&{&&&sum *=10;&&&sum +=a[i];&&}&&&&&&}int main()&{&&&&do{&&&printf(&请输入一个5位数:&);&&&scanf(&%d&,&n);&&&}while(n & 10000 && n & 99999);&&&&printf(&排序后:%d\n&,fun(n));&}希望我的回答对你有帮助!望采纳!谢谢!
为您推荐:
其他类似问题
扫描下载二维码C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)_百度知道
C语言题目:插入后自动排序(掌握用穷举法进行比较、交换)
一个整数插入到按由小到大排列的数列中:用数据指针,插入后仍然保持由小到大的顺序排列。要求
我使用DEV C++6.0 要求简单易懂能用谢谢由小到大的数列最好是手动输入后排序的
提问者采纳
struct&p;}&&List,input+2;[6]&%d&next,input+1,0;}int&
*l&void&).h&value);
p-&gt,value&)&l;)/*输入值需要插入到当前遍历节点之前*/
p=&tmp-&9&%d&&List&=&
tmp-&next&
**&nbsp,0;l&v&nbsp!prev)
p-&gt,int&=&;)&l&p,0;*&nbsp,tmp-&=&v;tmp-&gt,input+4;if&);||&4&
memset(p;value&nbsp:用数据指针;*l==NULL)/*输入链表为空*/ {
*l&&nbsp,*prev=NULL;3&&/*把一个整数插入到按由小到大排列的数列中;p;input&malloc(sizeof(List));,input+5);=& /*1&
memset(*l;pls&nbsp,*p,*(:#include&),input[i]);=&&lt,input+3;v&
tmp&insertList(&&%d&);value&
prev-&%d&nbsp输入&&main(){ int&l!=6)
goto&next&(tmp-&
tmp&#include& } printf(&scanf(&quot:&quot,sizeof(List)&=&nbsp,*next&i&value&
(*l)-&next&nbsp,但是写死了只能输入6个数字下面是代码;
memset(p;6&tmp-&&&value&=&
while(tmp)
next&nbsp: printf(&
tmp&(next&next&INPUT;\n& while(tmp) {
printf(&&=&2*/ List& if(i;);=&tmp-&gt.h&v;;
if(;&nbsp,sizeof(List)&
} } =&{ int&)/*输入值需要插入到当前遍历节点之后*/
p-&%d&=&0。*/typedef&=&&malloc(sizeof(List));input&struct&%d&value&
prev&&v&=&v&
insertList(&v,sizeof(List)&
p-&INPUT;_List&&& i&
return& } else {
List&%d&*=&i;1 2 3 4 8 9可以接受输入;;=&1 4 3 8 9 2输出&_List&=& int&nbsp,插入后仍然保持由小到大的顺序排列;8&nbsp!next&&gt。要求;NULL;next-&value&6;malloc(sizeof(List));=&v){ if(&*tmp=*l
非常抱歉,这个里边有数据结构的内容,我做的是大一C语言的,这个太明显会露馅。能提供一个简便的方法吗,可以不用自己输入已有的数列。
输出:19 22 27 29 30 40 42 45这次用的是数组,数组程序也不好懂,因为需要将数组内容后移,没有指针移动起来简单。不过用数组的确有很多比较和交换,比较符合出题人的意图#include&&stdio.h&#include&&stdlib.h&void&insert(int&*a,int&b){ int&i,*p; if(*a&==&-1)/*空数组*/ {
while(&*a!=-1)/*-1表示位置没有放数字*/ {
if(&(*(a+1)==-1&&&&*a&&b&)&||&(&(*(a+1)!=-1&&&&*a&&b&&&&*(a+1)&b)&)&)/*需要插入到当前数组下标后面*/
while(*p++&!=&-1)/*移动到最后一个元素后面*/
while(&p--&!=&a+1)/*元素后移*/
*p&=&*(p-1);
*(a+1)&=&b;
else&if(&*a&&&b)/*需要插入到当前数组下标前面*/
while(*p++&!=&-1)/*移动到最后一个元素后面*/
while(&p--&!=&a)/*元素后移*/
*p&=&*(p-1);
a++; } }int&main(){ int&input[6]&=&{&22,45,30,42,19,29&}; int&output[100]&; int&i;
memset(output,0xff,100*sizeof(int));/*-1表示位置没有放数字*/
output[0]&=&27; output[1]&=&40;
for(i=0;i&6;++i)
insert(output,input[i]);
for(i=0;output[i]!=-1;++i)
printf(&%d&&,output[i]);}
提问者评价
其他类似问题
为您推荐:
其他2条回答
printf(&;%d&*p&a[0];p&stdio,n=1;程序在运行时输入若干个非负整数; } for(p=a+1,&a[0]);n&);
*(p+1)=a[0]。#include &int main(void){ int a[100]; scanf(&quot,*p;=0;p--)
*(p+1)=*p;n++) {
for(p=a+n-1;a[0]& printf(&quot,&a[0]).h&,*p);\a+n; for(;%d&quot,以输入负数为结束标志; return 0;%d &quot
比较好的算法应该是用堆排序, 而不是穷举
穷举法的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁C语言冒泡、插入法、选择排序算法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
C语言冒泡、插入法、选择排序算法
上传于||暂无简介
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
你可能喜欢C语言题,在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列,要求用冒泡法,选择法_百度知道
C语言题,在键盘上输入N个整数,试编制程序使该数组中的数按照从大到小的次序排列,要求用冒泡法,选择法
printf(&);;=0,i++) scanf(&
a[j]=a[j+1],&a[i]);n&quot,a[i]););
a[j+1]=n&%d&i--)
printf(&quot,j;n;i&Input integers in order&#92.h&gt,i;
for(i=n-1;);n-1;i&lt,n;a[j+1])
temp=a[j].h&j++)
for(i=0;i++)
for(j=0;%d&n-i-1;;j&)提供一个冒泡排序法,&n);Input number of integers&#92,已通过编译;%d&i&lt,仅供参考~ #include& #include&n&
printf(& main() {
int a[100];&#92
知道智能回答机器人
我是知道站内的人工智能,可高效智能地为您解答问题。很高兴为您服务。
其他类似问题
为您推荐:
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言数字排序 的文章

 

随机推荐