auの日記

プログラミング初心者の日記。(auはハンドルネームです)

C言語で名前と売上を入力すると最高売上の人と金額と最低売上の人と金額を表示するプログラム

auです。
今回のプログラムは、名前と売上を入力するとその最高額と最低額の金額と、その人を表示するプログラムを組みました。

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

int main(void) {
    int number, total, sale, max_sale, min_sale, max_emp, min_emp, ave;
    char emp[256], max_emp_name[256], min_emp_name[256];
    // 売上件数はnumber、総売上がtotal 初期値=0
    number = 0;
    total = 0;
    printf("従業員の名前をendにすると終了\n");
    // 従業員の名前を入力
    printf("従業員の名前: ");
    scanf("%s", emp);
    // 売上の入力
    printf("%sの売上: ", emp);
    scanf("%d", &sale);
    // 総売上に入力した売上を足す
    total += sale;
    // 基準になる最大の売り上げ
    max_sale = sale;
    // 基準になる最小の売り上げ
    min_sale = sale;
    // 最高売上の従業員の名前
    strcpy(max_emp_name, emp);
    // 最小売上の従業員の名前
    strcpy(min_emp_name, emp);
    // 入力件数+1
    number++;
    // 従業員名がendになるまでループ
    /* strcmp(str1, str2)としたら、str1とstr2が同じ値(str1 == str2)の時に1を返す
                                  str1とstr2でstr1が大きい値(str1 > str2)の時に+の値(正の値)を返す
                                  st11とstr2でstr2が大きい値(str1 < str2)の時に-の値(負の値)を返す*/
    while (strcmp(emp, "end") != 0) {
    // n人目の入力
    printf("従業員の名前(endを入力で終了): ");
    scanf("%s", emp);
    if (strcmp(emp, "end") != 0) {
        // n人目の売上の入力
        printf("%sの売上: ", emp);
        scanf("%d", &sale);
    }
    // 総売上に入力した売上を足す
    total += sale;
    // もし最大売上がn人目のほうが大きい場合はその値に更新
    if (max_sale < sale) {
        max_sale = sale;
        // 従業員の名前の更新
        strcpy(max_emp_name, emp);
    }
    // もし最小売上がn人目のほうが大きい場合はその値に更新
    if (min_sale > sale) {
        min_sale = sale;
        // 従業員の名前の更新
        strcpy(min_emp_name, emp);

    }
    // 入力件数+1
    number++;
    }
    // 平均の入力
    ave = total / number;
    // 合計、平均、件数の表示
    printf("合計: %d 平均: %d 件数: %d\n", total, ave, number);
    // 最高売上の値と従業員の名前の表示
    printf("売上最高: %d\n従業員名: %s", max_sale, max_emp_name);
    // 最小売上の値と従業員の名前の表示
    printf("売上最小: %d\n従業員名: %s", min_sale, min_emp_name);
    return 0;
}

// 実行結果
従業員の名前をendにすると終了
従業員の名前: 佐藤
佐藤の売上: 100
従業員の名前(endを入力で終了): 伊藤
伊藤の売上: 200
従業員の名前(endを入力で終了): 加藤
加藤の売上: 300
従業員の名前(endを入力で終了): 井上
井上の売上: 500
従業員の名前(endを入力で終了): 浜田
浜田の売上: 800
従業員の名前(endを入力で終了): end
合計: 2700 平均: 450 件数: 6
売上最高: 800 従業員名: 浜田
売上最小: 100 従業員名: 佐藤

ちゃんとだしてくれました。
ただ、同じ金額を入力しても最初の人しかでてくれないのはどうにかしなければならないと思いました。