C语言字符串bca如何重新排序成abc

如题所述

第1个回答  2015-07-22

需对字符串按ascii排序,代码如下,使用的是选择排序法

#include<stdio.h>
int main()
{
    char str[] = "bca", tmp;
    int i, j, k;
    for (i = 0; i < 3; ++i){
        k = i;
        for (j = i+1; j < 3; ++j){
            if (str[k] > str[j]){
                k = j;
            }
        }
        if (k != i){
            tmp = str[k];
            str[k] = str[i];
            str[i] = tmp;
        }
    }
    puts(str);
    return 0;
}

第2个回答  2015-07-22

用一个简单的排序方法就可以了

#include<stdio.h>

int main()
{
    int i,j;
char str[]="bca" ;
//以下为冒泡法排序
for(i=0;i<3;i++)
for( j=0;j<2-i;j++ )
{
if ( str[j] > str[j+1] )
{
char t=str[j];
str[j]=str[j+1];
str[j+1]=t;
}
}
printf("%s\n", str );
return 0;
}

本回答被网友采纳

c语言字符串排序问题!
int cmp(char *p1,char *p2) \/* 字符串比较函数 *\/ {int i=0;while (*(p1+i)==*(p2+i))if (*(p1+i++)=='\\0') return 0; \/* 这里是先判断*(p1+i)=='\\0',然后再是i++ *\/ return (*(p1+i)-*(p2+i));} void sort(char *a[N]) \/*排序函数*\/ {char *temp...

C语言 输入一个三位数abc,输出bca
main(){ int n,a,b,c;scanf("%d",&n);a=n\/100;b=(n\/10)%10;c=n%10;printf("\\n倒序输出结果:%d%d%d",c,b,a);getch();} 三位数除以100那么商就是三位数的百位上数字,三位数除以10的商再除以10的余数就是三位数的十位上的数字,三位数除以10的余数就是三位数个位上的数字。

...2、C语言里不能使用字符串数组,如果需要应该如何
入栈 A 出栈 A 入栈 B 出栈 B 入栈 C 出栈 C ABC 入栈AB 出栈 BA 入栈C出栈 C BAC 入栈A 出栈 A 入栈BC 出栈 CB ACB 入栈ABC 出栈 CBA

C语言如何找出两个字符串中相同的字段,并输出?
include <stdio.h>#include <stdlib.h>int main(int argc, char *argv[]) { char s1[50]={"\\0"}; char s2[50]={"\\0"}; printf("\\nplease input s1:"); scanf("%s",s1); printf("\\nplease input s2:"); scanf("%s",s2); int len1=strlen(s1); int len2=strlen(s2); ...

由3各不为零的数字组成的三位数,将它各位上的数字重新排序后,得到...
3. 可以证明,对于三位数【ABC】,它的任意一个新的排列得到的新数如ACB、BAC、BCA、CAB、CBA甚至重排到本身ABC,这新旧两个数的差总是9的倍数。上面的内容希望你能理解。回到该问题,999的各位数字之和为27,是奇数。设:旧数ABC的值为100A + 10B + C,新数的值为100A + 10B + C + 9T...

c++中char * 和 char 的区别
1、储存内容不同 在C语言中,char *是定义一个字符串,存储的是一段如“abcd”的数据,而且最后还有一个结束符'\\0';char 是定义一个字符,存储一个字符,占一个字节。2、数据类型不同:char * 是指针类型,是一个用来保存一个内存地址的计算机语言中的变量。char 是字符类型,用来存储字符值。3...

c语言在一种室内游戏中,魔术师要每位观众心里想一个三位数abc,然后魔术...
include <stdio.h>#include<stdlib.h>#include<math.h> int Magic(int m); int Tput( int a, int b, int c ); main(){ int m; \/\/观众求出的五个数的和int M; \/\/魔术师算出的三位数scanf("%d",&m);M=Magic(m);if(M==99) \/\/循环过后,所有三位数都不符合printf("The...

几道简单的C语言题目
A: ABCDEFG B: ABCDEF C: BCDEF D: BCDEFG 【A】15. 以下一维数组定义中,正确的是:A: int a[5] = { 1,2,3,4,5 }; B: int a[5] = 1,2,3,4,5;C: int a[1 to 5]; D: int a[]【D】16.以下字符串定义与赋值中,正确的是:A: char s[80]; ...

全国计算机等级考试二级C语言历年试题及答案
C)C程序可以由一个或多个函数组成 D)在C程序中main()函数的位置是固定的(11)将E-R图转换到关系模式时,实体与联系都可以表示成 A)属性 B)关系 C)键 D)域 (12)下列定义变量的语句中错误的是 A)double int_; B)int _int; C)char For D)float USS(13)下列叙述中正确的是 A)C语言编译时不检查语法...

全国计算机等级考试二级C语言历年试题及答案
这里有一份最全的考研历年真题资料分享给你 链接: https:\/\/pan.baidu.com\/s\/1t0SUkI-X-BW4v7Isl0dk4w 提取码: w2wt 通过不断研究和学习历年真题,为考生冲刺阶段复习提分指点迷津,做真题,做历年真题集,对照考纲查缺补漏,提高实战素养,制定做题策略,规划方向;若资源有问题欢迎追问!

相似回答