新手:关于scanf的一点问题

发表在    C语言编程讨论组 02-07 14:44:27

0 1943 8

素数的判断

#include <stdio.h>

bool IsPrime(int val) { int i; for (i=2; i<val; ++i) { if (val%i == 0) break; } if (i == val) return true; else return false; }

int main (void) { int m; printf ("请输入数值:"); scanf ("%d\n", &m); if ( IsPrime(m) ) printf ("yes\n"); else printf ("no\n"); return 0; }

在prnitf后面的scanf误加n,要使该程序输出结果,我的理解是数值+空格+空格,正确的理解是怎样的?


登录或注册后发布评论
  • 忘了说了,bool(布尔)型变量不属于C语言,这是C++的变量,C语言中,把整数零看做逻辑假,其他值全部看做逻辑真,所以说,这个程序是不能用不支持C++的编译器编译的。(关于逻辑值,C语言的小门道这个系列贴中会讲到(就在下一期),有时间可以关注一下)

    6年前 0 回复
  • test

    实验结果(去了提示符)

    6年前 0 回复
  • 在scanf()的输入形式这个参数中,除了像%d,%f这类参数,都要原样输入进去,才能正常运行。也就是输入(不加引号和加号):“数值+n”。

    6年前 0 回复

    @127 实验过的

    6年前 0 回复

    @127 谢谢了,之前写错了,是n不是n。。。。麻烦解释一下

    6年前 0 回复

    @二锅头算什么 是换行(new line)意思的/n吗?

    6年前 0 回复

    @二锅头算什么 原样写,也就是写:你输入的数字+n(加号不用输),因为在scanf中,双引号内的出格式字符之外的所有字符,都要原样输入。(包括转义字符)

    6年前 0 回复
author avatar

二锅头算什么

英勇黄铜Ⅴ 15荣誉值

1

0

0

二锅头算什么的其他帖子