楼主你好。第二个if语句作用是,如果c是空格的话,在这个前提下,如果lastc不是空格则输出c,对于lastc的初始值为a那么第一次执行时if条件满足,所以输出了一个c也就是空格,然后把空格赋值给lastc。 接下来进入while的第二次循环,假设这次读的还是空格,那么又到了第二个if语句, 这时候判断lastc是不是空格了,有了上一次的赋值,此时if(lastc!=' ')中的条件不满足,则不执行putchar(c),lastc仍然为空格,接下来重复。解释的应该清楚吧?
#include
main()
{ char s[]="012xy\08s34f4w2"; //这里是字符数组,里面存放的是字符
int i,n=0;
for(i=0;s[i]!=0;i++) //这里的 s[i] 是一个字符;将其ASCII码值 与0比较
if(s[i]>='0'&&s[i]<='9') n++;
printf("%d\n",n);
}
char s[]="012xy\08s34f4w2"; //存放到数组里的内容为
s[0] = '0' ,其ASICC码值为48 不等于0
s[1] = '1' ,其ASICC码值为49 不等于0
s[2] = '2' ,其ASICC码值为50 不等于0
s[3] = 'x' ,其ASICC码值为120 不等于0
s[4] = 'y' ,其ASICC码值为121 不等于0
s[5] = '\0' ,该字符为字符串结束符,其ASCII码值为0 因此循环一直要进行到这里才会退出for循环
程序功能是计算字符数组中 在出现结束符之前的字符中有多少个数字字符
因此答案为三个 (0、1、2), 输出的n的值为3
请注意 数字字符 与数字的差别即:
'0' - 0 = 48 // 数字字符与对应数字的 差值为整数十进制48 可参考ASCII码值表
'9' - 9 = 48
#include<stdioh>
void main()
{
int x,y;
x=y=0;
while(x<15)
{
y++,x+=++y;
printf("%d,%d\n",y,x);
}
printf("%d,%d",y,x);
}
2,2
4,6
6,12
8,20
8,20Press any key to continue上面是运行结果,执行一次while中的语句,y值增加2,x加上的值是y增加2后的值
以上就是关于求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了全部的内容,包括:求高手解释下这个小程序第二个if语句以后的那几行,它是如何实现将多个空格替换为一个空格的呀!!谢谢了、★C语言 for语句的一个小程序求解、解释一下这个C语言小程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)