零K沁雪


私信TA

用户名:qczl

访问量:28915

签 名:

零K沁雪

等  级
排  名 54
经  验 6574
参赛次数 3
文章发表 35
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

解题思路:

1、字符串比较大小的函数strcmp(char *a, char *b)

    a) a == b 返回0

    b)a < b 返回负值

    c) a > b返回正值

2、字符串拷贝函数 strcpy(char *a, char *b),将字符串b拷贝到字符串a中。

3、既然是排序问题,那么就可以用冒泡排序法。

注意事项:

参考代码:

#include<stdio.h>
#include<string.h>

int main()
{
	char a[3][128], tmp[128];
	int i, j;
	for(i=0; i<3; i++)
	{
		scanf("%s", a[i]);
	}
	for(i=0; i<3; i++)
	{
		for(j=i+1; j<3; j++)
		{
			if(strcmp(a[i], a[j]) > 0)
			{
				memset(tmp, 0, sizeof(tmp));
				strcpy(tmp, a[i]);
				strcpy(a[i], a[j]);
				strcpy(a[j], tmp);
			}
		}
	}
	for(i=0; i<3; i++)
	{
		printf("%s\n", a[i]);
	}
	return 0;
}


 

0.0分

15 人评分

  评论区

呜呜呜呜呜,大佬救命啊,我到底错在哪里了
#include<stdio.h>
#include<string.h>
int main()
{
	char a[128],b[128],c[128],temp[128];
	scanf("%s",&a);
	scanf("%s",&b);
	scanf("%s",&c);
	if(strcmp(a,b)){
		strcpy(temp,a);
		strcpy(a,b);
		strcpy(b,temp);
	}
	if(strcmp(b,c)){
		strcpy(temp,c);
		strcpy(c,b);
		strcpy(b,temp);
	}
	if(strcmp(a,b)){
		strcpy(temp,a);
		strcpy(a,b);
		strcpy(b,temp);
	}
	puts(a);
	puts(b);
	puts(c);
	return 0;
}
2020-03-26 23:02:52 | |
傻傻的做法
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
	string str1,str2,str3,a,b,c,t;
	getline(cin,str1);
	getline(cin,str2);
	getline(cin,str3);
	for(int i=0;i<str1.length();i++)
    {
        a+=str1[i];
    }
    for(int i=0;i<str2.length();i++)
    {
        b+=str2[i];
    }
    for(int i=0;i<str3.length();i++)
    {
        c+=str3[i];
    }
if(a>b)
    {
        t=b;b=a;a=t;
    }
    if(b>c)
    {
        t=c;c=b;b=t;
    }
    if(a>b)
    {
        t=b;b=a;a=t;
    }
    cout<<a<<endl;cout<<b<<endl;cout<<c<<endl;
	return 0;
 }
2020-03-13 21:07:55 | |
#include<stdio.h>
#include<string.h>
int main()
{
	char b[3][4], t;
	for (int i = 0; i < 3; i++)
		gets(b[i]);
	for (int i = 0; i < 3; i++)
	{
		if (b[i][0] > b[i][1])
		{  
			t = b[i][0];
			b[i][0] = b[i][1];
			b[i][1] = t;
		}
		if (b[i][1] > b[i][2])
		{
			t = b[i][1];
			b[i][1] = b[i][2];
			b[i][2] = t;
			if (b[i][0] > b[i][1])
			{
				t = b[i][0];
				b[i][0] = b[i][1];
				b[i][1] = t;
			}
		}
	}
	for (int i = 0; i < 3; i++)
	{
		if (b[0][i] > b[1][i])
		{
			t = b[0][i];
			b[0][i] = b[1][i];
			b[1][i] = t;
		}
		if (b[1][i] > b[2][i])
		{
			t = b[1][i];
			b[1][i] = b[2][i];
2020-02-05 15:48:27 | |
为什么我这个运行错误?在自己的编译器上运行过是和样例完美符合的。
#include<stdio.h>
int main()
{
	char a[3],b[3],c[3];
	scanf("%s%s%s",a,b,c);
	printf("%s\n%s\n%s\n",c,b,a);
	fflush(stdin);
	getchar();
	return 0;
}
2019-12-03 12:15:54 | |
A为什么是二维数组啊
2019-11-20 17:48:11 | |
#include<stdio.h>
#include<string.h>
void swap(int *a,int *b);
void in(int a[]);
void deal(int a[]);
void print(int a[]);
int main()
{
    int a[10];
    in(a);
    deal(a);
    print(a);
    return 0;
}
void swap(int *a,int *b)
{
    int t;
    t=*a;
    *a=*b;
    *b=t;
}
void in(int a[])

{
    int i;
    for(i=0;i<10;i++)
    {
        scanf("%d",&a[i]);
    }
}
void Print(int a[])
{
    int i;
    for(i = 0;i < 10;++i)
        printf("%d ",a[i]);
}
void deal(int a[])
{
    int i;
    for(i=1;i<10;i++)
    {
        if(a[0]>a[i])
        {
            swap(&a[0], &a[i]);
        }
    }
2019-08-13 17:39:41 | |
#include<stdio.h>
#include<string.h>
int main()
{
	char a[3][100],Huan[100];
	for (int i = 0;i < 3;i++)
	{
		fgets(a[i], 100, stdin);
	}
	for (int i = 0;i < 3;i++)
	{
		for (int n = i + 1;n < 3;n++)
		{
			if (strncmp(a[i], a[n], 100) > 0) // 大于0  a[i]>a[n]
			{  
				memset(Huan, 0, 100);          // 初始化 中转字符数组
				strncpy_s(Huan, a[i],100);       //交换a[i]跟a[n] 
				strncpy_s(a[i], a[n], 100);
				strncpy_s(a[n], Huan, 100);
			}
		}
	}
	for (int i = 0;i < 3;i++)
	{
		printf("%s",a[i]);
	}
	return 0;
}
为什么错误50%
2019-05-12 15:11:47 | |
还有老师,你这个代码我怎么看不明白啊,哈哈。。。
(假设输入的时候第一行字符串最大,第三行字符串最小)你的第十二行for循环i=0运行第一次,运行完成以后第一行字符转移到了第三行的位置,原本第二第三行字符往前面移动,变成了第一第二行,这个时候的第一行比第二行大,而你第十二行的for循环运行第二次i=1的时候,for循环里面的内循环是从j=i+1=2,也就是三行代码里面的第二行开始往下面比较,而第一行你就没有管他了,我就这里感觉好像有点问题。
2019-05-09 20:24:22 | |