新手求助,一个关于WHILE循环的问题

彼德V 2017-09-16 03:21:14
这是一个要用户输入一个整数,然后打印这个整数一直到整数加10的程序,为什么我的这个程序在运行后,输入了数字后就无反应了。
#include "stdafx.h"


int main()
{
int n = 0;
printf("Please input a number:");
scanf_s("%d", &n);
int n2 = n;
while (n < n2 + 11);
{
printf("%d ",n);
n++;
}
return 0;
}

非常感谢大家
...全文
463 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2017-09-18
  • 打赏
  • 举报
回复
不要使用
while (条件)
更不要使用
while (组合条件)
要使用
while (1) {
 if (条件1) break;
 //...
 if (条件2) continue;
 //...
 if (条件3) return;
 //...
}
因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。
典型如:
下面两段的语义都是当文件未结束时读字符
while (!feof(f)) {
 a=fgetc(f);
 //...
 b=fgetc(f);//可能此时已经feof了!
 //...
}
而这样写就没有问题:
while (1) {
 a=fgetc(f);
 if (feof(f)) break;
 //...
 b=fgetc(f);
 if (feof(f)) break;
 //...
}
类似的例子还可以举很多。
赵4老师 2017-09-18
  • 打赏
  • 举报
回复
关于自己是否适合编程的很简单的测试: 在报纸或杂志上随便找一段约1000字的文章,在Word中输入一遍。输完后再参考下面答案: A里面有10处以上文字或标点错误 B里面没有文字或标点错误并敢为此跟人打赌 C里面没有文字或标点错误并且字体和排版完全与原稿一致 D打印在半透明的纸上和原稿重叠在一起检查一模一样,且自我感觉很有成就感 A不适合编程(理由:打字准确度偏低、粗心大意) B初级程序员(理由:打字准确度很高、认真细致、自信、理解全角半角概念) C高级程序员(理由:在B的基础上理解字体和排版也是电脑打印的重要因素、但相比D还不够偏执、精益求精、结果可验证) D软件项目经理(理由:能针对项目给出令人信服的细致到极点的需求说明和典型测试用例。用户几乎挑不出毛病。专业!) 如果想从A变成B的话,到我的资源http://download.csdn.net/detail/zhao4zhong1/4084259里面下载“适合程序员的键盘练习”
自信男孩 2017-09-18
  • 打赏
  • 举报
回复
while死循环了,因为其后多了一个分号
paschen 2017-09-17
  • 打赏
  • 举报
回复
while (n < n2 + 11); 后面多了一个分号,循环成了一个空循环,删除后面的分号
KimenWu 2017-09-16
  • 打赏
  • 举报
回复
引用 1 楼 T20091 的回复:
while的那一行末尾多了个分号。。。
眼真好使
冬南风 2017-09-16
  • 打赏
  • 举报
回复
while的那一行末尾多了个分号。。。

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧