C语言如何在键盘中输入一个数字字符串并进行排序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何在键盘中输入一个数字字符串并进行排序相关的知识,希望对你有一定的参考价值。
比如定义一个字符串char[100],在键盘中输入了457268447668
输出就是887766654442
楼主你好!
根据你的要求,我使用冒泡排序法,帮写个了程序,代码及运行结果如下!如果有不正确之处,请广大好手指正!谢谢!
#include<stdio.h>#include<string.h>
int main()
char a[100];
int i,j;
printf("请输入字符串:\\n");
scanf("%s",a);
for(i=0;i<strlen(a);i++)
for(j=0;j<strlen(a)-1-i;j++)
char temp;
if(a[j]<=a[j+1])
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
printf("排序后的字符串:\\n%s\\n",a);
return 0;
希望我的回答对你有帮助!
追问朋友,谢谢你的答案,我还想追问一下,假如我还想在这个字符串的后面再输入一个整型数,怎么样保证这个数字不在这个字符串内呢?
比如:定义一个字符串char[100];int n;
在键盘中输入了457268447668 3
然后再排序那个数字字符串。
如果可以的话,加我qq(56313492)吧,一起讨论吧!这感觉不是一两句可以说清楚的!
参考技术A #include<cstdio>#include<cstring>
#include<algorithm>
using namespace std;
#define size 10010
int num[size],len;
char ch[size];
int main()
scanf("%s",ch);
len=strlen(ch);
for(int i=0;i<len;i++)
num[i]=ch[i]-'0';
sort(num,num+len); //系统快排,需要用到算法库(algorithm)
for(int i=0;i<len;i++)
printf("%d",num[i]);
return 0;
我感觉你是这个意思,输入一串数字,将数字从小到大排序。
本回答被提问者采纳 参考技术B1.把字符串当成一个字符数组,然后对该数组进行大小排序即可。
2.例程:
#include<string.h>
char s[1000];
int i,j,k,temp;
int main()
gets(s); //得到一个字符串,储存到s变量中
k=strlen(s); //得到该数组的长度,也就是字符数量
for(i=0;i<k;i++)
for(j=i+1;j<k;j++) if(s[i]<s[j]) //使用冒泡排序整理字符串
temp=s[i];
s[i]=s[j];
s[j]=temp;
printf(s); //输出字符数组排序后的结果
return 0;
以上是关于C语言如何在键盘中输入一个数字字符串并进行排序的主要内容,如果未能解决你的问题,请参考以下文章
汇编语言编写由键盘输入10个4位的数据并将这些数小到大进行排序其结果输出在显示屏上的程序 。
C语言从键盘输入一个含有英文字母,英文符号,数字的字符串,如何过滤其中的字母??