C语言:输入10个整数,按从小到大排序,再输入一个整数,插入到已排好序的数组中,保持原数组的顺序不变。
a[10]=a[i];
a[i]=a[i+1];
a[i+1]=a[10];
改为:
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
-----------------
int i,j,a[N],k;
改为:
int i,j,temp,k;
int a[N];
实在觉得繁琐,你的程序有2个地方可以改进
1,排序的时候不用冒泡算法,取用其它的排序算法
2,插入的时候可以用二分插入法,比你上面的算法效率高多了
第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;
}
第一个有人写了,我来写那个补充题吧:
#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;
}
}
这个应该就是你说的功能了。
#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];
}
很多,很古老的问题了啊,可以在网络上找到一大堆答案的。
如何用c语言实现键盘输入10个整数,并输出?
include"stdio.h"\/\/从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出 intmain(){ inti;floatmax,min,num[10];printf("请输入10个数,每输入一个数按回车键结束:\\n");for(i=0;i<10;i++){ scanf("%f",&num[i]);} max=min=num[0];for(i=1;i<10;i++){ ...
用c语言编程实现请输入10个整数,请输出最大值及所在位置(位置从1数起...
{ int a[10]={0}; int i,max,max_index; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); max=a[0]; max_index=0; for(i=1;i<10;i++) if(a[i]>max) { max=a[i]; max_index=i; } printf("这10个数中的最大值是%d,位置为%d\\n",max,max_index+1...
用c语言编写一个程序,输入10个数求平均值。
C语言:编写一个程序,从键盘输入10个学生成绩,求平均成绩。1、虽然main函数可以作为结构体或者类的成员函数,但相应地会失去作为程序出入口的功能。 C++中全局main函数的书写格式与C语言完全相同,功能也完全相同,且同一C++程序同样只能有一个全局main函数。2、循环语句中进行10个数的累加在sum里面,然后...
C语言:从键盘输入10个整型数据,找出最大值和最大值的下标并输出_百度知 ...
include <stdio.h> int main(){ int i,max,min,k,l;int a[10];for(i=0;i<10;i++)scanf("%d",&a[i]);max=min=a[0];for(i=0;i<10;i++){ if(a[i]>=max){ max=a[i];k=i;} if(a[i]<=min){ min=a[i];l=i;} } printf("该数组最小的是a[%d]=%d\\n",l...
C语言编程:任意输入10个整数放入数组中,然后求其中的最大值和最小值...
{ int a[10],max,min,i,x,y;printf("请输入10个数字:\\n");for(i=0;i<10;i++)scanf("%d",&a[i]);max=a[0];min=a[0];for(i=0;i<10;i++){ if(a[i]>max){ max=a[i];x=i;} if(a[i]<min){ min=a[i];y=i;} } printf("max=%d,下标为%d,min=%d,下标为...
c语言编写程序:从键盘输入10个整数,输出它们的最大数,总和,平均值_百度...
include <stdio.h>#include <stdlib.h>int main(){int i = 0, numbers[10] = { 0 }, max = 0, sum = 0;float average = 0;printf("请输入10个整数:");for (i = 0; i < 10; i++) {scanf("%d", &numbers[i]);}max = numbers[0];for (i = 0; i < 10; i++) ...
用C语言编写一段程序,用来输入10个整数保存到数组中,求出这10个整数的...
include#include#defineN10main(){inta[N],i,temp;for(i=0;i<=N-1;i++)scanf("%d",&a[i]);\/\/存一个十个数的数组for(i=0;i<=N-1;i++)\/\/打印输入的数组printf("%d\\t",a[i]);printf("\\n");for(i=0;i<=N\/2-1;i++){temp=a[N-i-1];\/\/把头和尾的交换。主要是下...
c语言。编程序,输入10个整数,把其中重复出现的数删去(如出现三个87,则...
{ int a[10];for(int i=0;i<10;i++)scanf("%d",&a[i]);int b[10];b[0]=a[0];int k=1;for(i=1;i<10;i++)for(int j=0;j<k;j++){ if(a[i]==b[j])break;else if(j==k-1){ b[k]=a[i];k++;} } for(i=0;i<k;i++)printf("%d ",b[i]);printf(...
填空题:C语言:键盘上输入10个整数,程序按降序完成从大到小排序_百度知...
void sort(int *p,int *q){ int *max,*s;void swap(int *x,int *y);if(p>q)return;max=p;for(s=p+1;s<=q;s++)if(*max<*s)max=s;swap(p,max);sort(p+1,q);} void swap(int *x,int *y){ int temp;temp=*x;x=*y;y=temp;} void main(){ int i,array[10];f...
C语言:由键盘输入10个整数,倒序输出
思路:先输入10个数赋值给数组a,接着倒序输出该数组即可。参考代码:include<stdio.h>int main(){int i,a[10];for(i=0; i<10; i++)\/\/正序输入 scanf("%d", &a[i]);for (i=9; i>=0; i--)\/\/倒序输出 printf("%d ", a[i]); return 0;}\/*0 1 2 3 4 5 6 7...
石俊培菲: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30# include <stdio.h> #define N 10//元素个数 voidsort(inta[], intn)//排序函数 {inti=0,j=0,temp; for(i=0; i<n; i++){for(j=i+1; j<n; j++){if(a[j]<a[i]){temp = a[i];a[i] = ...
射阳县18593046294: 用C语言编程:从键盘中输入10个整数,并将这些数按从小到大顺序排列. - ?
石俊培菲: #include<stdio.h> void main(){ int num[10],i,j,temp; for(i=0;i<10;i++){ printf("请输入百第度%d个数知:",(i+1)); scanf("%d",num[i]); } for(i=0;i<10;i++){ for(j=0;j<10-i;j++){ if(num[j]>num[j+1]){ temp=num[j]; num[j]=num[j+1]; num[j+1]=temp; } ...
射阳县18593046294: C语 从键盘输入10个数,要求按从小到大排列出来 - ?
石俊培菲: #include "stdio.h" //冒泡法 由小到大排序main() { int i,j,a[10],temp; for(i=0;i<10;i++) scanf("%d",&a[i]); printf("\n"); for(j=0;j<9;j++) for(i=0;i<9-j;i++) if(a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp; } for(i=0;i<10;i++) printf("%d ",a[i]); printf("\n"); }
射阳县18593046294: C语言程序设计: 从用户输入10个整数,对其按照从小到大的顺序排序,并输出结果. - ?
石俊培菲: #include int main() {int a[10],i;for(i=0;iscanf(逗%d地,&a[i]);//对十个元素输入数值 for(i=0;iprintf(逗%d地,a[i]);return 0;}
射阳县18593046294: 用C语言编写“输入10个整数,按从大到小排列”的程序说明 - ?
石俊培菲: #include<stdio.h> void main() {int i,j,min,temp,a[10]; printf("请输入:\n");/* 提示用户输入信息 */ for(i=1;i<=10;i++)/* 这里有问题,下标i应该是从0开始,最大为9,即应写为for(i=0;i<10;i++) */ {printf("a[%d]=",i);/* 输出第i个数a[i]= */ scanf(...
射阳县18593046294: c语言高手帮忙:从键盘输入10个整数.用选择法或冒泡法将它们从小到大的顺序排序,并以此顺序输出. - ?
石俊培菲: #include main() {int s[10],t,i,j,x;printf("input 10 numbers:\n");for(t=0;t<10;t++)scanf("%d",&s[t]);for(i=0;i<9;i++)for(j=0;j<9-i;j++)if(s[j]>s[j+1]){t=s[j];s[j]=s[j+1];s[j+1]=t;}printf("the result is:\n ");for(j=0;j<10;j++)printf("%d",s[j]); printf("\n"); }
射阳县18593046294: 用C语言编写从键盘上任意输入10整数,要求按从小到大的顺序在屏幕上显示. - ?
石俊培菲: void sort(int %a[10]) { int i,j,t; for(i=0;ia[j+1]) {t=a[j]; a[j]=a[j+1]; a[j+1]=t;} } } void main() { int array[10]; int i; for(i=0; i
射阳县18593046294: C语言程序设计,输入10个整数,由小到大排序输出. - ?
石俊培菲: #include "stdio.h" main() { int a[10],i,j,q; printf("input ten num:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<10;i++) for(j=i+1;j<10;j++) if(a[i]>a[j]) { q=a[i]; a[i]=a[j]; a[j]=q; } for(i=0;i<10;i++) printf("%d",a[i]); }
射阳县18593046294: 输入10个整数,按照由大到小的顺序输出C语言编写?
石俊培菲: #include <stdio.h> #define NUM 10 void main() { int i,j,k,a[NUM]; printf("请输入10个数字进行从大到小的排序:"); for(i=0;i<NUM;i++) { scanf("%d",&a[i]); } for(i=0;i<NUM;i++) { for(j=0;j<NUM;j++) { if(a[i]>a[j]) { k=a[i]; a[i]=a[j]; a[j]=k; } } } for(i=0;i<NUM;i++) { printf("%d",a[i]); } }
射阳县18593046294: C语言编程问题,求从电脑上输入10个整数,然后按从小到大排列输出的代码. - ?
石俊培菲: 展开全部#include main() { int i,j,temp; int a[10]; for(i=0;i<10;i++) scanf ("%d",&a[i]); for(j=0;j<9;j++) {for (i=0;i<9-j;i++) if (a[i]>a[i+1]) { temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=0;i<10;i++) printf("%d ",a[i] ); printf("\n"); }