0
#include <stdio.h>

int main()
{       
    printf("how old are you? ");
    int age = 0;
    scanf("%d", age);

    printf("how much does your daily habit cost per day? \n");
    int daily = 0;
    scanf("%d", daily); 

    double thisyear = daily * 365;

    printf("\n");
    printf("this year your habit will cost you: %.2f", thisyear);

    return 0;
}

これは私の学校向けプログラムです。これを書いているときは、ユーザーを 1 にしようとしていて、年齢と 2 に 1 日の生活費を与えています。ただし、これを実行するとプログラムがクラッシュします

4

3 に答える 3

3

scanf("%d", 毎日);

なる必要がある

scanf("%d", &daily);

変数の値を変更できるように、変数のアドレス (つまり、ポインター。これは で行われます&)を に渡す必要があります。scanf同じことが他のプロンプトにも当てはまります。に変更します

scanf("%d", &age);

プログラムを実行すると、次のようになります。

% a.out
how old are you? 30
how much does your daily habit cost per day? 
20

this year your habit will cost you: 7300.00
于 2012-06-03T03:02:11.977 に答える
1

scanf 関数はポインターを想定しています。

scanf("%d", &age);

「毎日」でスキャンする行についても同様です。

于 2012-06-03T03:01:09.713 に答える
0

scanf は変数への参照を処理します

printf("how old are you? ");
int age = 0;
scanf("%d", &age);

printf("how much does your daily habit cost per day? \n");
int daily = 0;
scanf("%d", &daily); 

double thisyear = daily * 365;

printf("\n");
printf("this year your habit will cost you: %.2f", thisyear);
于 2012-06-03T03:02:54.387 に答える