游客 Signup | Login
中文 | En

1245 - C语言10.15

输入3个字符串,按从小到大的顺序输出。要求使用指针的方法进行处理。

Input

3行,每行一个用字符串。保证每个字符串的长度不超过20。

Output

按从小到大的顺序输出这3个字符串,每个字符串一行。

请注意行尾输出换行。

Examples

Input

China
CLOCK
deal

Output

CLOCK
China
deal

Solution C

#include<stdio.h>
#include<string.h>
int main()
{
  char str[3][20],*p[3],*ptr;
  int i,j;
  for(i=0;i<3;i++)
        p[i]=str[i];
  for(i=0;i<3;i++)
    scanf("%s",str[i]);
  for(i=0;i<2;i++)
    for(j=i+1;j<3;j++)
    if(strcmp(p[i],p[j])>0)
  {
      ptr=p[i];
      p[i]=p[j];
      p[j]=ptr;
  }
  for(i=0;i<3;i++)
    printf("%s\n",p[i]);
  return 0;
}


Solution C++

#include <stdio.h>
#include <string.h>
int main() {
	char *pa, *pb, *pc, *t;
	char a[21], b[21], c[21], ch;
	int i;
	/* 分别读入三个字符串 */
	i = 0;
	while ((ch = getchar()) != '\n') {
		a[i] = ch;
		i++;
	}
	a[i] = '\0';
	i = 0;
	while ((ch = getchar()) != '\n') {
		b[i] = ch;
		i++;
	}
	b[i] = '\0';
	i = 0;
	while ((ch = getchar()) != '\n') {
		c[i] = ch;
		i++;
	}
	c[i] = '\0';
	/* 三对字符串的比较和调换过程 */
	pa = a; pb = b; pc = c;
	if (strcmp(pa, pb) > 0) {
		t = pa; pa = pb; pb = t;
	}
	if (strcmp(pa, pc) > 0) {
		t = pa; pa = pc; pc = t;
	}
	if (strcmp(pb, pc) > 0) {
		t = pb; pb = pc; pc = t;
	}
	printf("%s\n", pa);
	printf("%s\n", pb);
	printf("%s\n", pc);
	return 0;
}

Time Limit 1 second
Memory Limit 32 MB
Discuss Stats
上一题 下一题