[ create a new paste ] login | about

Link: http://codepad.org/82dMhAvP    [ raw code | fork ]

C, pasted on Jul 1:
1 
5つの整数と長さ3の文字列を読み込み,文字列が"MAX"のときは最大値を,文字列が"MIN"のときは最小値を出力するプログラムを以下の関数 main() を用いて作成せよ.

#include <stdio.h>
#include <string.h>             /* strcmp() */
#define SIZE 5
 
/* ... */
 
int main(void)
{
    int a[SIZE];
    char kind[4];
 
    getarray(a, SIZE);
    printf("MIN or MAX > ");
    scanf("%s", kind);
    if (strcmp("MAX", kind) == 0) {
        printf("最大値: %d\n", search_max(a, SIZE));
    }
    if (strcmp("MIN", kind) == 0) {
        printf("最小値: %d\n", search_min(a, SIZE));
    }
 
    return 0;
}

実行例
0 > 1
1 > 5
2 > 4
3 > 8
4 > 3
MIN or MAX > MAX
最大値: 8

実行例
0 > 1
1 > 5
2 > 4
3 > 8
4 > 3
MIN or MAX > MIN
最小値: 1

2
正整数nn個の実数,および文字列を読み込み,文字列がselectionのときは選択ソート,文字列がbubbleのときはバブルソートをして,使用したソートアルゴリズムと降順にソートされた実数型配列を出力するプログラムを作成せよ.以下のコードを穴埋めして,用いても良い.

#include <stdio.h>
#include <string.h>             /* strcmp() */
 
void get_array(double num[], int size)
{
    int i;
    for (i = 0; i < size; i++) {
        printf("%d番目の実数 > ", i);
        scanf("%lf", &num[i]);
    }
}
 
void swap(double *i, double *j)
{
    /* ... */
}
 
void ssort(double a[], int n)
{
    /* ... */
}
 
void bsort(double a[], int n)
{
    /* ... */
}
 
void print_array(double num[], int n)
{
    int i;
    for (i = 0; i < n; i++) {
        printf("%f\n", num[i]);
    }
}
 
int main(void)
{
    /* ... */
}


実行例
整数 > 10
0番目の実数 > 3.3
1番目の実数 > 4.4
2番目の実数 > 2.2
3番目の実数 > 1.1
4番目の実数 > 0.0
5番目の実数 > 9.9
6番目の実数 > 8.8
7番目の実数 > 5.5
8番目の実数 > 7.7
9番目の実数 > 6.6
文字列 > selection
選択ソート
9.900000
8.800000
7.700000
6.600000
5.500000
4.400000
3.300000
2.200000
1.100000
0.000000

実行例
整数 > 10
0番目の実数 > 3.3
1番目の実数 > 4.4
2番目の実数 > 2.2
3番目の実数 > 1.1
4番目の実数 > 0.0
5番目の実数 > 9.9
6番目の実数 > 8.8
7番目の実数 > 5.5
8番目の実数 > 7.7
9番目の実数 > 6.6
文字列 > bubble
バブルソート
9.900000
8.800000
7.700000
6.600000
5.500000
4.400000
3.300000
2.200000
1.100000
0.000000

3
正整数nn個の長さ20以下の文字列,および文字列sを読み込み,文字列sselectionのときは選択ソート,文字列がbubbleのときはバブルソートをして,文字列型配列を辞書順に出力するプログラムを作成せよ.文字列を入れ替えるのに,以下の関数swap()を用いてもよい.

void swap(char *s, char *t)
{
    char temp[MAX];
    strcpy(temp,s);
    strcpy(s,t);
    strcpy(t,temp);
}


実行例
整数 > 3
0番目の文字列 > b
1番目の文字列 > c
2番目の文字列 > a
文字列 > bubble
a
b
c


実行例
整数 > 7
0番目の文字列 > Blake
1番目の文字列 > Leighton
2番目の文字列 > Taylor
3番目の文字列 > Jessica
4番目の文字列 > Penn
5番目の文字列 > Chace
6番目の文字列 > Ed
文字列 > selection
Blake
Chace
Ed
Jessica
Leighton
Penn
Taylor

文字列の比較にstrcmp()を用いると良い.

4

以下のプログラムを作成せよ.

入力
    正整数n,ならびにn個の名前と電話番号の組,および文字列.ただし,いずれの入力文字列も長さ20以下と仮定して良い. 
処理
    構造体型配列で電話帳を作成し,名前をキーとして,文字列がselectionのときは選択ソート,文字列がbubbleのときはバブルソートをする. 
出力
    名前をキーとして辞書順にソートされた電話帳.同名の人は,どの順序に出力してもよい. 

実行例
人数 > 2
0人目:名前 > bbb
電話番号 > 111
1人目:名前 > aaa
電話番号 > 222

文字列 > selection

aaa, 222
bbb, 111

実行例
人数 > 5
0人目:名前 > Taro
電話番号 > 090-111-1111
1人目:名前 > Hanako
電話番号 > 090-222-2222
2人目:名前 > Ichiro
電話番号 > 090-333-3333
3人目:名前 > Jiro
電話番号 > 090-444-4444
4人目:名前 > Hanayo
電話番号 > 090-555-5555

文字列 > bubble

Hanako, 090-222-2222
Hanayo, 090-555-5555
Ichiro, 090-333-3333
Jiro, 090-444-4444
Taro, 090-111-1111


Create a new paste based on this one


Comments: