C在printf中编译错误

时间:2016-10-03 20:07:24

标签: c

我是C的菜鸟。

我的代码:

#include <stdio.h>
int main() {
        int M, N, O, P;
        printf("Enter the value of M\n");
        scanf("%d", &M);
        N = 3*M^2;
        O = M + N;
        P = M + M;
        printf("The value of %d \n", M + %d \n", M equals %d \n", P  %d \n", N  %d \n", O);
        return 0;
}

错误:

  

test.c:在函数'main'中:   test.c:9:错误:'%'标记之前的预期表达式   test.c:9:错误:在程序中迷路'\'   test.c:9:错误:在程序中隐藏'\'

我无法弄清楚如何正确打印MNOP的值并与之一起进行测试。

3 个答案:

答案 0 :(得分:1)

你的printf应该是这样的:

printf("The value of %d \n equals %d \n %d \n %d \n", M, P, N, O);

您可以在双引号中打印所需的信息,然后您必须认为%d就像您要打印的变量的占位符。

答案 1 :(得分:1)

您似乎混淆了格式化字符串,其中%d和\ n在引号之外。 首先尝试编写整个格式化字符串,然后编写每个参数;像这样:

printf("The value of %d \nM equals %d \nN  %d \n", M, P, 0);

每个%d应对应于您要从参数中打印的数字,按顺序给出。

答案 2 :(得分:-1)

你的printf()语句在语法上是不正确的。您应该使用一个格式字符串,后跟要使用格式说明符插入的值。

类似的东西:

printf("The value of M + N equals %d\n", M + N);

您可以使用许多格式说明符(以百分号为前缀的子字符串)或许多printf语句。

请参阅wikipedia以获取解释。

相关问题