我在C中有一些代码编译,但给出了错误的答案

时间:2014-04-23 13:17:34

标签: c

我是C编程的新手。我想为数字和字符串提供输入。然后打印出来。程序编译,但我得到这个输出“你写了0”。任何提示都非常有价值。谢谢

#include <stdio.h>

int main(int argc, char **argv)
{
int number;
char cc[30];
scanf("Write number: %d\n", &number);
scanf("Write phrase: %s\n", cc);
printf("You wrote : %d %s",number,cc);  
return 0;
}

3 个答案:

答案 0 :(得分:4)

要使scanf("Write number: %d\n", &number);成功,您需要输入类似&#34;写号:42&#34;进入,我不认为这是你想要做的。你可以用这个替换它

printf("Write number: ");
scanf("%d", &number);

另一个scanf()有同样的问题并修复。

答案 1 :(得分:3)

您为scanf提供的格式字符串是它所期望的输入格式。

您想要使用

printf("Write number: ");  // no trailing \n here
scanf("%d", &number);

答案 2 :(得分:1)

首先,您无法使用scanf功能进行打印。为此,您必须在scanf语句之前使用printf语句。

printf("Write number: ");
scanf("%d", &number);
printf("\nWrite phrase: ");
scanf("%s", cc);
printf("\nYou wrote : %d %s",number,cc);

其次,您不应在scanf语句中的格式说明符后使用'\ n'。 scanf语句使用'\ n'即换行符,作为您已完成为函数提供输入的指示符。 即使以下代码也可以使用:

scanf("%d", &number);
scanf("%s", cc);

完成这项工作的更好方法是:

scanf("%d %s", &number, cc);