0

私はプログラミングの入門を取っていますが、あまり関与していない教授がいます。残念ながら、クラスは私のような初心者でいっぱいなので、そこには助けがありません. 入出力、割り当てステートメント、算術演算のみを使用して税計算機を作成する必要があります。私の友人は実際にコードを少し修正するのを手伝ってくれて、それを私に送る前にコンパイルしました。私は何も変えていませんが、それでもうまくいきません。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    const double TAX_RATE = 0.075;
    double item1 = 0, item2 = 0, item3 = 0;

    printf("Enter the price of the first item: \n");
    scanf("%lf", &item1);

    printf("You entered %.2lf \n", item1);
    printf("Enter the price of the second item: \n");
    scanf("%lf", &item2);

    printf("You entered %.2lf \n", item2);
    printf("Enter the price of the third item: \n");
    scanf("%lf", &item3);

    double total = item1 + item2 + item3;
    double tax = total * TAX_RATE;
    double totalWithTax = total + tax;

    printf("You entered %.2lf \n", item3);
    printf("The total of your items is %.2lf \n", total);
    printf("The tax is %.2lf \n", tax);
    printf("The total with tax is %.2lf \n", totalWithTax);

    system("pause");

}

ここに出力があります

1>------ Build started: Project: assign2, Configuration: Debug Win32 ------
1>  program.c
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(10): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(14): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(18): warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
1>          c:\program files (x86)\microsoft visual studio 10.0\vc\include\stdio.h(304) : see declaration of 'scanf'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(20): error C2143: syntax error : missing ';' before 'type'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(21): error C2143: syntax error : missing ';' before 'type'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(22): error C2143: syntax error : missing ';' before 'type'
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(25): error C2065: 'total' : undeclared identifier
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(26): error C2065: 'tax' : undeclared identifier
1>c:\users\chris\documents\visual studio 2010\projects\assign2\assign2\program.c(27): error C2065: 'totalWithTax' : undeclared identifier
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
4

1 に答える 1

11

C では、C99 未満の変数を関数の先頭 (他の非変数初期化ステートメントの前) で宣言する必要があるため、

const double TAX_RATE = 0.075;
double item1 = 0, item2 = 0, item3 = 0;
double total, tax, totalWithTax;

そして、それらを使用できます:

total = item1 + item2 + item3;
tax = total * TAX_RATE;
totalWithTax = total + tax;

C++ および C99 では、コード内で変数を宣言できます。

Visual C++ は C99 を完全にはサポートしていません (一部のみ、たとえばhttps://stackoverflow.com/a/146419/613130を参照)

Visual C++ は、ファイル拡張子に基づいて使用する言語を選択します。あなたの友人はおそらくプログラムに like という名前を付け、myprogram.cpp彼のコンピューターでは C++ としてコンパイルしましたが、あなたはファイルに名前を付け、myprogram.cあなたのコンピューターでは C としてコンパイルしました。

警告については...無視してかまいません。Microsoft は数年前に、C のベース ライブラリの一部 (文字列とメモリ ブロックを処理するもの) に対する十字軍を開始しました。いくつかのパラメーターを持つ新しい関数が導入されました。これらの関数は標準ではなく、Microsoft 固有のものです。http://msdn.microsoft.com/en-us/library/8ef0s5kh.aspxを参照してください。

あなたが使用することができます

#define _CRT_SECURE_NO_WARNINGS

ファイルの先頭 ( の前#include) で、警告を削除します。GCC でコンパイルする場合、副作用はありません。

于 2013-09-09T10:06:44.890 に答える