我正在参加编程,我有一位不太参与的教授。不幸的是,这个课程充满了像我这样的新手,所以没有帮助。我必须使用输入/输出,赋值语句和算术创建一个税收计算器。我的朋友实际上帮我修改了一些代码并在发送给我之前编译了它。我没有改变任何东西,但它对我不起作用。
#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 ==========
答案 0 :(得分: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 ++根据文件扩展名选择您使用的语言。您的朋友可能将该程序命名为myprogram.cpp
,并在计算机上将其编译为C ++,同时将文件命名为myprogram.c
,并在计算机上将其编译为C.
警告......你可以忽略它们。微软几年前开始讨论部分基本库C(处理字符串和内存块),宣称它们“不安全”,因为它很容易被滥用。它引入了具有更多参数的新功能。这些功能不是标准的,也不是Microsoft特有的。请参阅http://msdn.microsoft.com/en-us/library/8ef0s5kh.aspx。
您可以使用
#define _CRT_SECURE_NO_WARNINGS
在文件的开头(#include
之前)删除警告。如果你在GCC上编译,它就没有副作用。