C语言:变量未初始化

时间:2020-05-27 06:27:43

标签: c

您好,我编写了三个单独的程序,每个程序告诉您一年中一个月中有多少天,计算出您坐公交车后还剩下多少钱,以及一个计算器程序。

我认为前两个程序不会影响最后一个程序,并且计算器程序可以单独正常运行。但是,一旦我添加了/ * * /,并阻止了前两个代码块,则最后一个计算器程序将无法运行,表明变量答案未初始化。该代码粘贴在下面。

#include <stdio.h>

int main() {

// program telling you days in a month

    int month;
    printf("Choose month > ");
    scanf("%d", &month);
    puts("");

    switch (month) {
    case 1:
    case 3:
    case 5:
    case 7:
    case 8:
    case 10:
    case 12:
        printf("%d th month has up to 31 days\n", month);
        break;
    case 2:
        printf("Feburary has 28 or 29 days\n");
        break;
    case 4:
    case 6:
    case 9:
    case 11:
        printf("%d th month has up to 30 days\n", month);
        break;
    }
    puts("");

// Balance calculating program

    int balance = 10000;
    char choice;

    printf("Choose between Adult (g) or Student (s) g /s > ");

    while (getchar() != '\n');

    scanf("%c", &choice);
    puts("");

    switch (choice) {
    case 'g':
    case 'G':
        balance -= 1250;
        puts("Adult fee is 1250 won\n");
        break;
    case 's':
    case 'S':
        balance -= 720;
        puts("Student fee is 720 won\n");
        break;
    }
    printf("balance : %d", balance);
    puts("");

// Calculator program

    char cal;
    double num1, num2, answer;

    printf("Calculator \n");
    printf("Choose the type of calculation + , - , * , / > ");
    scanf("%c", &cal);
    puts("");

    while (getchar() != '\n');

    printf("input two numbers > ");
    scanf("%lf%lf", &num1, &num2);
    puts("");

    switch (cal) {
    case '+':
        answer = num1 + num2;
        break;
    case '-':
        answer = num1 - num2;
        break;
    case '*':
        answer = num1 * num2;
        break;
    case '/':
        answer = num1 / num2;
        break;
    }

    printf("%.2f %c %.2f = %.2f", num1, cal, num2, answer);

}

感谢您的帮助

0 个答案:

没有答案