1245 - C语言10.15

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 32 MB

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

题目输入

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

题目输出

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

请注意行尾输出换行。

输入/输出样例

输入格式

China
CLOCK
deal

输出格式

CLOCK
China
deal

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;
}


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;
}

Java解答



import java.util.Arrays;
import java.util.Scanner;

public class Main{
   private static Scanner s = new Scanner(System.in) ;
   
   public static void main(String[] args) {
	  String strs[] = new String[3] ;
	  
	  for (int i = 0; i < strs.length; i++) {
		  strs[i] = s.next() ;
	  }
	  
	  Arrays.sort(strs);
	  
	  for (int i = 0; i < strs.length; i++) {
		 System.out.println(strs[i]) ;
	  }
   }
}