
使用C++,任意输入一串整数,按从小到大的顺序输出。 要程序
3个回答
推荐于2017-10-08 · 知道合伙人教育行家
关注

展开全部
用一个字符数组存储这一串整数,再利用而冒泡排序对字符数组从小到大排序,最后输出该字符数组。
//参考代码
#include <iostream>
#include<math.h>
#include<string.h>
using namespace std;
int main()
{
char a[80],temp;
int len,i,j;
cin>>a;//输入整型串
len = strlen(a);//求输入的整型串长度
for (int i = 0; i <len ; i++){//冒泡排序
for (int j = 0; j < len - i; j++)
if(a[i]>a[i+j]){
temp=a[i];
a[i]=a[i+j];
a[i+j]=temp;
}
}
for(i=0;i<len;i++)//输出排序后的整型串
cout<<a[i];
cout<<endl;
return 0;
}
/*运行结果:
12131321548711191
11111111223345789
*/
展开全部
#include <stdio.h>
#include <stdlib.h>
void BuddleSort(int array[], int n);
void main()
{
int *a;
int i=0;
int temp=0;
char c;
int count=0;
a=(int*)malloc(sizeof(int));
printf("请输入整数,以回车结束\n");
while( scanf("%d",&temp))
{
a[i]=temp;
count++;
i++;
a=(int*)realloc(a,i*sizeof(int)+sizeof(int)); //再分配空间
c=getchar();
if(c=='\n')
break;
//用于记录输入多少个数
}
printf("\n排序前:\n");
for(i=0;i<count;i++)
printf("%3d",a[i]);
//开始排序
BuddleSort(a,count);
printf("\n排序后:\n");
for(i=0;i<count;i++)
printf("%3d",a[i]);
printf("\n");
}
void BuddleSort(int array[], int n)
{
int i, j;
bool flag = true;
for (i = 1; flag && i < n; i++)
{
flag = false;
for (j = 0; j < n - i; j++)
{
if (array[j] > array[ j + 1])
{
flag = true;
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
没注意到是C++,写了个C 的~~但是应该差不多,C++完全兼容C,你可以看看~~别忘了采纳哦~
#include <stdlib.h>
void BuddleSort(int array[], int n);
void main()
{
int *a;
int i=0;
int temp=0;
char c;
int count=0;
a=(int*)malloc(sizeof(int));
printf("请输入整数,以回车结束\n");
while( scanf("%d",&temp))
{
a[i]=temp;
count++;
i++;
a=(int*)realloc(a,i*sizeof(int)+sizeof(int)); //再分配空间
c=getchar();
if(c=='\n')
break;
//用于记录输入多少个数
}
printf("\n排序前:\n");
for(i=0;i<count;i++)
printf("%3d",a[i]);
//开始排序
BuddleSort(a,count);
printf("\n排序后:\n");
for(i=0;i<count;i++)
printf("%3d",a[i]);
printf("\n");
}
void BuddleSort(int array[], int n)
{
int i, j;
bool flag = true;
for (i = 1; flag && i < n; i++)
{
flag = false;
for (j = 0; j < n - i; j++)
{
if (array[j] > array[ j + 1])
{
flag = true;
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
}
没注意到是C++,写了个C 的~~但是应该差不多,C++完全兼容C,你可以看看~~别忘了采纳哦~

你对这个回答的评价是?
展开全部
void my_sort(char* a)
{
int len = strlen(a);
int temp = 0;
for (int i = 0; i < len; ++i)
{
for (int j = i +1; j < len; ++j)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
void main()
{
int i=0;
char a[10];
printf("Enter num:");
a[i]=getchar();
for(i=0;a[i]!='\n'; )
{
i++;
a[i]=getchar();
}
a[i]='\0';
my_sort(a);
int j = 0;
for (; j < strlen(a) - 1; ++j)
{
cout << a[j] << ",";
}
cout << a[j] << endl;
}
输入:3748309
输出:0,3,3,4,7,8,9
{
int len = strlen(a);
int temp = 0;
for (int i = 0; i < len; ++i)
{
for (int j = i +1; j < len; ++j)
{
if (a[i] > a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
void main()
{
int i=0;
char a[10];
printf("Enter num:");
a[i]=getchar();
for(i=0;a[i]!='\n'; )
{
i++;
a[i]=getchar();
}
a[i]='\0';
my_sort(a);
int j = 0;
for (; j < strlen(a) - 1; ++j)
{
cout << a[j] << ",";
}
cout << a[j] << endl;
}
输入:3748309
输出:0,3,3,4,7,8,9
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询