两个scanf函数,但一个读取不同的值

时间:2018-05-16 16:17:27

标签: c string decimal scanf

我在努力让程序在请求变量月的输入后读取先前输入的变量total。总数总是28257,我不知道为什么。

我发现第11行使用了" %c",但我想知道为什么"%s"没有。

    #include <stdio.h>  
    int main(void) { 

    int total; 
    char month;
    float sales;

    printf ("Enter total amount collected (-1 to quit): ");
    scanf("%d", &total);
    printf("Enter name of month: ");
    scanf("%s", &month);
    printf("total collections : $ %d\n", total);
    sales = (total/1.09);
    printf("sales : $ %.2f\n", sales);
    printf("county sales tax: $ %.2f\n", sales * 0.05);
    printf("state tax: $ %.2f\n", sales*0.04);
    printf("total sales tax collected: $ %.2f\n", sales *0.05 + sales *0.04);
    return 0;   }

1 个答案:

答案 0 :(得分:0)

您将声明为字符,因此您应该使用%c 进行输入。 %s 用于输入字符数组。在 scanf(“%c”,&amp; month); 之前,还要使用 getchar();

  • 的getchar();
  • scanf(“%c”,&amp; month);