C错误3错误C2065:'num1':未声明的标识符

时间:2013-11-09 10:17:38

标签: c

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


int main(){
    char letter;
    printf("Choose your calculation operation:7n/tA:Addition/n/tB:Subtraction/n/tC:Multiplacation/n/tD:Division/n/t");
    scanf("%c/n",letter);
    float num1, num2;
    printf("Enter a Num:");
    scanf("%f/n",&num1);
    printf("Enter the second Num:");
    scanf("%f/n",&num2);
     if(letter=='A' || letter=='a') printf("%f + % f = %f",num1,num2,(num1+num2));
     else if(letter=='B'||letter=='b') printf("%f - % f = %f",num1,num2,(num1-num2));
     else if(letter=='C'||letter=='c') printf("%f * % f = %f",num1,num2,(num1*num2));
     else if(letter=='B'||letter=='b') printf("%f / % f = %f",num1,num2,(num1/num2));
     else printf("You choosed wrong mark.");

}

2 个答案:

答案 0 :(得分:3)

在C89中,变量声明应该在块的开头。该限制已在C99中删除。

根据您的错误代码,您使用的是Visual Studio,它还不支持C99。

因此,您应该在功能块的开头添加声明。

int main(){
    char letter;
    float num1, num2;
    printf("Choose your calculation operation:7n/tA:Addition/n/tB:Subtraction/n/tC:Multiplacation/n/tD:Division/n/t");

另一件事,/n/t,您可能意味着\n\t

答案 1 :(得分:1)

letter属于char类型,这意味着使用letter阅读scanf时应通过地址scanf("%c", &letter);