C语言:输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的数组中,保持原数组的顺序不变。

C语言求助:
2、 输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的数组中,保持原数组的顺序不变。
3、 补充题:输入n个正整数(代表n个人),围成一圈,按1,2,3报数,报到3的人跳出。试编一个程序,问最后一个留在圈中的人是谁?
求助达人!

貌似都是书上的题啊
第1个应该很简单,定义数组大一点,输入要查找的数据后,对比找到第一个比它大的数的位置,然后将该位置后的数全部顺延一位,将数据放入该位置

第2个
#include<stdio.h>
#define N 20 //宏定义数组大小
int main()
{
int a[N];
int n,Con=0,i=0,Total_p;
printf("input n(n<%d):",N);
scanf("%d",&n); //输入人数,小于N
while(n>N)//如果输入数据大于数组的最大宽度,则重新输入
{
printf("wrong number\n input again:");
scanf("%d",&n);
}
for(i=0;i<n;i++)
a[i]=i+1;//给数组赋值,表示第一,第二....第n个人
Total_p=n;
i=0;
while(Total_p!=1)//总人数只有1个人时停止循环
{
Con++;//报数
if(a[i]==0)
Con-=1;//如果某元素为0,则说明属于已经跳出的人,不计数
if(Con==3)//报到3则运行
{
a[i]=0;//使元素为0,表示已经跳出
Con=0;//报数重新开始
Total_p--;总人数减1人
}
i++;//指向下一个人
if(i==n)//表示最后一个人已经报过数
i=0;//又从第一个人开始数
}
for(i=0;i<n;i++)
if(a[i]!=0)
printf("The number of the last people is %d\n",a[i]);//找出数组中不为0的元素,此人则是最后留下的人
return 0;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-04-13
第一个有人写了,我来写那个补充题吧:
#include<iostream>
#include<conio.h>
using namespace std;

struct Jose
{
iint code;
Jose* next;
};

int n, s, m;
Jose *pCur, *pivot;

bool getValue();
Jose* createRing();
void countBoy(int m);
void process();

int main()
{
if(!getValue()) return 1;
Jose* pJose = createRing();
process();
cout<<"\nThe winner is "<<pCur->code<<"\n";
delete[] pJose;
getch();
}

bool getValue()
{
cout<<"please input boyNumber, startPosition, intervalNumber: \n";
cin>>n>>s>>m;
if(n>=2 && s>=1 && s<=n && m>=1 && m<=m) return true;
cerr<<"failed in bad boyNumber or startPosition or intervalNumber.\n";
return false;
}

Jose* createRing()
{
Jose* px = new Jose[n];
for(int i=1; i<=n; ++i)
{ px[i-1].next = &px[i%n];
px[i-1].code = i;
}
cout<<"There are "<<n<<" boys.\n";
pivot = & px[n-2];
pCur = &px[n-1];
countBoy(s-1);
return px;
}

void countBoy(int m)
{
for(int i=0; i<m; ++i)
{ pivot = pCur;
pCur = pivot->next;
}
}

void process()
{
for(int i=1; i<n; ++i)
{ countBoy(m);
static int line=0;
cout<<" "<<pCur->code;
if(!(++line%10)) cout<<"\n";
pivot->next = pCur->next;
pCur = pivot;
}
}
这个应该就是你说的功能了。本回答被提问者和网友采纳
第2个回答  2008-11-01
#include<iostream.h>
main()
{
int a,b;
int array[10];
for(int i=0;i<10;i++)
cin>>array[i];
for(b=9;b>0;b++)
for(i=0;i<b;i++)
if(array[i]>array[i+1])
{
a=array[i];
array[i]=array[i+1];
array[i+1]=a;
}
for(i=0;i<10;i++)
cout<<endl<<array[i];
}
第3个回答  2008-11-01
很多,很古老的问题了啊,可以在网络上找到一大堆答案的。

C语言:输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的...
第1个应该很简单,定义数组大一点,输入要查找的数据后,对比找到第一个比它大的数的位置,然后将该位置后的数全部顺延一位,将数据放入该位置 第2个 include<stdio.h> define N 20 \/\/宏定义数组大小 int main(){ int a[N];int n,Con=0,i=0,Total_p;printf("input n(n<%d):",N);scanf...

...10个从小到大有序排列的整数后,再输入一个整数将其插入其中,使其仍...
main(){ int a[6]={5,26,31,78,91},i,t,k;printf("---\\n原数组:");for (i=0;i<5;i++){ printf(" %d ",a[i]);} printf("\\n插入一个数:");scanf("%d",&t);if (t>=a[0] && t<a[4]){ for (i=0;i<5;i++){ if (t>=a[i]&&t<=a[i+1])break;} ...

C语言 要求输入10个,将它按从大到小排序,再输入一个数插入到排好序的...
include <math.h> main(){ int i,j,p,q,s,a[10];float jun;printf("\\n input 10 numbers:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++){ p=i;q=a[i];for(j=i+1;j<10;j++)if(q

...10个有序(由小到大)整数存入数组a,再输入一个整数x,在数组a中插入x...
define Pi 3.1415926 int main(){ int a[11],i,x;printf("请输入10个由小到大的整数:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);printf("请输入要插入的数:\\n");scanf("%d",&x);for(i=9;i>=0&&a[i]>x;i--)a[i+1]=a[i];a[i+1]=x;printf("插入后的数组:\\...

...从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果。_百度...
首先,我们需要包含头文件,以便使用标准输入输出函数。在主函数main()中,我们定义一个长度为10的整数数组a,并设置两个变量i和j来辅助排序过程,以及一个临时变量temp用于交换元素值。接着,通过printf()函数提示用户输入10个整数,并使用for循环读取用户的输入。在排序部分,使用嵌套的for循环,外层循环...

C语言有一个已排好序的整型数组,有10个元素,要求从键盘输入一个数后...
{ int a[20],i,n,x,k;printf("请输入一组顺序数(从小到大的顺序):");for( i=0; ;i++ ){ scanf("%d",&a[i]);if( getchar() == '\\n' )break;} n = i + 1; \/\/n表示数组内数字的个数 printf("请输入需要插入的数:");scanf("%d",&x);for(i=0;i<n;i++){...

用指针实现由键盘输入10个整数将他们按由小到大的顺序排列
要使用指针在C语言中实现键盘输入10个整数并按由小到大的顺序排列,我们可以定义一个整型数组和相应的指针来操作这些整数。首先,通过循环读取用户输入的10个整数存储到数组中。然后,使用冒泡排序算法(或其他排序算法)对这些整数进行排序,排序过程中通过指针来访问和交换数组中的元素。示例代码片段(不...

C语言 从键盘输入10个整数,将这10个整数按从小到大的顺序输出。
1、打开软件进入页面,点击文件-新建-文件-C++ Source File。2、输入预处理命令和主函数:#include<stdio.h>\/*输入输出头文件*\/void main()\/*空类型:主函数*\/。3、定义变量和数组的数据输入10个数:int a[10],i,t;\/*定义变量和数组数据类型为整型*\/printf("输入10个整数:");\/*输出文字...

C语言如何输入十个数,按从大到小顺序排列!
用选择排序法编写c语言,实现从键盘上输入10个数,按从大到小的顺序排序输出。代码如下:include<stdio.h> int main(){ int i,j,a[10],t;printf("输入数");for (i = 0; i < 10; i++)scanf("%d",&a[i]);for (i = 0; i < 10; i++){ for (j = i + 1; j < 10;j...

C语言问题:从键盘输入十个整数,用选择排序法对输入的数据从小到大的顺序...
void SelectSort(int a[],int n){ int i,j,temp,min;for(i=0;i<n-1;i++){ min=i;for(j=i+1;j<n;j++)\/\/找到最小元素的位置 while(a[j]<a[min])min=j;if(min!=i){ temp=a[min];\/\/元素的交换 a[min]=a[i];a[i]=temp;} } } void main(){ int a[10],i;pr...

相似回答