|
C言語のプログラム
練習 キーボードから入力した文字列をアルファベット順にして表示
include <stdio.h>
#include <string.h>
void main(void)
{
char name[3][20];
char *p_name[3], *p;
int i, j;
printf("文字列を3回入力して下さい\n");
for (i = 0; i < 3; i++) {
printf("%d:", i + 1);
scanf("%s", name[i]);
}
for (i = 0; i < 3; i++) {
p_name[i] = name[i];
}
for (i = 0; i < 3; i++) {
for (j = i + 1; j < 3; j++) {
if (strcmp(p_name[i], p_name[j]) > 0) {
p = p_name[i];
p_name[i] = p_name[j];
p_name[j] = p;
}
}
}
printf("アルファベット順に表示\n");
for (i = 0; i < 3; i++) {
printf("%s\n", p_name[i]);
}
}
ソートの部分を関数にして書き換えてみよう。
|
|
Java言語のプログラム
練習 キーボードから入力した文字列をアルファベット順にして表示
import java.io.*;
class StringSort {
public static void main(String args[]) {
String str[] = new String[3];
int i, j;
InputStreamReader keyin = new InputStreamReader(System.in);
BufferedReader buff = new BufferedReader(keyin);
System.out.println("文字列を3回入力して下さい");
try {
for (i = 0; i < str.length; i++) {
str[i] = buff.readLine();
}
} catch (IOException e) {
System.out.println("文字入力が不正です");
}
for (i = 0; i < str.length; i++) {
for (j = i + 1; j < str.length; j++) {
if (str[i].compareTo(str[j])>0) {
String wk = str[i];
str[i] = str[j];
str[j] = wk;
}
}
}
System.out.println("アルファベット順に表示");
for (i = 0; i < str.length; i++) {
System.out.println(str[i]);
}
}
}
保存ファイル名: StringSort.java
コンパイル: javac StringSort.java
実行: java StringSort
キー入力部分、ソートの部分、結果の表示部分を別々のクラスにして書き換えてみよう。複数のクラスからなるjavaファイルにはpublic修飾子の付くクラスは1つしか許されません。解答例はこちらです。
|