-2
#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.");

}
4

2 回答 2

3

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

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

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

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");

还有一件事,通过/nand /t,您可能是指\nand \t

于 2013-11-09T10:26:22.793 回答
1

letter是类型char,这意味着读入letterusingscanf应该通过地址传递,即scanf("%c", &letter);

于 2013-11-09T10:25:03.877 回答