修复c中的百分比计算器?

时间:2016-11-26 00:40:24

标签: c percentage percentile

我尝试使用此代码,但在用户输入总分后控制台崩溃

#include <stdio.h>
#include <string.h>

int main () {
    int part, total;
    int whole = 100;
    printf("What is total score of the exam?\n");
    scanf("%d", part);
    printf("Enter your score on the exam\n");
    scanf("%d", total);
    printf(total/part * whole);
    return 0;
}

2 个答案:

答案 0 :(得分:3)

一个简短的回答,所以这个问题不会得不到答案。您应该启用编译器警告并学习解释它们,这样您就可以更轻松地自己解决问题。在GCC上,您可以添加-Wall编译器选项,以显示查看此类问题所需的常用警告。

#include <stdio.h>
#include <string.h>

int main ()
{
    int part, total;
    int whole = 100;

    printf("What is total score of the exam?\n");
    scanf("%d", &part); /* address of part needed, not its value*/

    printf("Enter your score on the exam\n");
    scanf("%d", &total); /* address of total needed, not its value*/

    printf("%d", total/part * whole); /* printf expects a string as its first parameter */
    return 0;
}

答案 1 :(得分:1)

如@ Striezel评论中所述,您需要在scanf中添加指向第二个参数的指针,这样您不仅可以检索变量的值,还可以指向您想要读入的变量。

您的scanf代码应如下所示:

int main() {
    ...
    scanf("%d", &part);
    ...
    scanf("%d", &total);
    ...
}

此外,您的上一个printf缺少一个字符串组件,如下所示:printf("%d", total/part * whole);

另请查看@LudaOtaku的answer,了解有关识别这些非常基本错误的一些提示。