c++ 初学者不懂数字和字符串之间的转换,红色框内的while语句看不懂,求哪位大神赐教一下
- C语言的一个程序看不懂,求大神帮忙解释哈!
- 新手学C语言里面有个东西看不懂,关于While switch语句的:统一一行字符中元音字母(a,e,i,o,u)个数。
- C语言初学者的一个关于while语句的疑问……
- 关于c语言的问题,为什么我看不懂什么意思,求大神给我详细解释一下while里的循环,谢谢了!
C语言的一个程序看不懂,求大神帮忙解释哈!
char str[]={"abcdefg"},*p1,*p2,ch; //定义字符串,两个指针,和一个字符变量
p1=p2=str;//将指针指向字符串
while(*p2!='\0') //p2指针指着的值不是\0的时候就往后移一位(字符串最后一位默认\0)
p2++;
p2--; //由于p2++所以指针会指向\0,把它移回来,指中\0的前一个位置
while(p1<p2) //如果p2移动过,则p2>p1,此时执行
{
ch=*p1,*p1=*p2,*p2=ch; //利用ch,将p1 p2上的字符交换一下
p1++;
p2--; //交换后p1往后移p2往前移,一位一位的交换,直到p1的位置比p2靠后时,每一位都交换过,此时停止
}
puts(str);//输出交换后的字符串
望采纳~~YG笨蛋
新手学C语言里面有个东西看不懂,关于While switch语句的:统一一行字符中元音字母(a,e,i,o,u)个数。
1.你输入一行字符的时候,是以换行也就是'\n'的,while语句会逐个把这行字符中每个字符取出来,如果这个字符不等于'\n',也就是这行字符还没有读完,那就接着运行下面大括号中的语句,知道读完为止。
2.tolower(ch)是函数的调用,把字符ch转换为小写,因为你的字符中可能会有大写或者小写,不管大小写都应该算
3.ctype.h是系统自带的一个头文件,你要用tolower(ch)这个函数就必须包含这个头文件,要不然没法用。
C语言初学者的一个关于while语句的疑问……
这里的--K也可以当成是一个条件语句,非0为真,就可以执行while。为0时while结束
关于c语言的问题,为什么我看不懂什么意思,求大神给我详细解释一下while里的循环,谢谢了!
你可以象计算机一样一句一句机械地执行你的程序,这就叫跟踪:
int x=1,y=1; //x=1,y=1
while ( x<=9) //因条件成立执行循环体
y=1; //y=1
while(y<=x) //x=1,y=1,条件成立执行循环体
printf("%d*%d=%d\t",y,x,x*y);//输出:1*1=1
y++; //y=2
while(y<=x) //x=1,y=2,条件不成立结束循环
printf("\n"); //输出换行,可见while(y<=x)循环是要输出一行内容,而while(x<=9)可控制输出几行
x++; //x=2,y=2
while ( x<=9) //因条件成立执行循环体
y=1; //y=1
while(y<=x) //x=2,y=1,条件成立执行循环体
printf("%d*%d=%d\t",y,x,x*y);//输出:2*1=2
y++; //y=2
while(y<=x) //x=2,y=2,条件成立执行循环体
printf("%d*%d=%d\t",y,x,x*y);//输出:2*2=4
y++; //y=3
while(y<=x) //x=2,y=3,条件不成立结束循环
printf("\n"); //输出换行
...
经过上述跟踪,得到了完整的两行输出:
1*1=1
2*1=2 2*2=4
可以预见的是后面的输出:
3*1=3 3*2=6 3*3=9
...
9*1=9 9*2=18 9*3=27 ... 9*9=81
是一个九九乘法表,程序中while语句要分析它的起始和结束条件,因为while(x<=9)循环的结束条件是x>9,因此我们注意一下x的初始条件,x=1;循环体中对x进行无条件的赋值计算的语句就一句:x++;那么可得出:经过循环,每次循环x会分别等于1,2,3,4,...,9;y值在while(x<=9)循环体内,每次都要重新置1,然后循环条件是y<=x,循环体中有y++,也就是y从1逐次变化到x,如果用for循环表示可能会更容易读懂:
for ( x=1;x<=9;x++,printf("\n") )
for ( y=1;y<=x;y++ )
printf("%d*%d=%d\t",y,x,x*y);