这个程序不理解啊 这个lastc=c;更是迷糊

YI一一一YI 2016-10-21 04:27:53

#include <stdio.h>
#define NOTBLANK 'a'
main()
{
int c,lastc;
lastc = NOTBLANK;
while((c = getchar()) != EOF){
if (c != ' ')
putchar(c);
if (c == ' ')
if (lastc != ' ')
putchar(c);
lastc = c;
}
...全文
492 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2016-10-21
  • 打赏
  • 举报
回复
根据你程序的意思,应该是:如果不是空格,则输出该字符 如果是空格,且如果上一次输入的字符不是空格,那么输出这个字符 也就是说程序是想实现如果输了多个空格,只显示一个 lastc 每次赋值c ,意思就是记录上一次输入的字符
赵4老师 2016-10-21
  • 打赏
  • 举报
回复
引用 3 楼 a7716021 的回复:
[quote=引用 2 楼 qq423399099 的回复:] VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
你俩真是够了[/quote] 唠叨一般都是有用的。
a7716021 2016-10-21
  • 打赏
  • 举报
回复
引用 2 楼 qq423399099 的回复:
VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。 对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
你俩真是够了
小灸舞 2016-10-21
  • 打赏
  • 举报
回复
VC调试时按Alt+8、Alt+7、Alt+6和Alt+5,打开汇编窗口、堆栈窗口、内存窗口和寄存器窗口看每句C对应的汇编、单步执行并观察相应堆栈、内存和寄存器变化,这样过一遍不就啥都明白了吗。
对VC来说,所谓‘调试时’就是编译连接通过以后,按F10或F11键单步执行一步以后的时候,或者在某行按F9设了断点后按F5执行停在该断点处的时候。
赵4老师 2016-10-21
  • 打赏
  • 举报
回复
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。 提醒:再牛×的老师也无法代替学生自己领悟和上厕所! 单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是程序员必须掌握的技能之一。

33,317

社区成员

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

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