请问这个C源程序的意思

来源:百度知道 编辑:UC知道 时间:2024/06/27 16:01:52
/* */
#include <stdio.h>
main()
{
char ch,nch; /* */
int count; /* */
int k; /* */

printf("Please input a string with a # in the end.\n");
scanf("%c",&ch); /* */
while(ch != '#') /* */
{
if(ch >= '0' && ch <= '9')
{
/* */
count = ch-'0'+1; /* */
scanf("%c",&nch); /* */
for(k=0;k<count;k++) /* */
printf("%c",nch);
}
else
printf("%c",ch); /* */
printf(" "); /* */
scanf("%c",&ch); /* */
}
printf("#\n"); /* */
}

特别是while和if语句.
我刚学,想了很9还不太懂,麻烦解释下

从键盘读取一些字符,直到你输入#

字符一边读取一边逐个处理。
如果是数字x,则将紧挨它后面的符号显示x遍
其它字符照原样打印出来

与此同时,以上每组字符间加入一个空格。

应该说是一个将while和if语句结合得很好的程序范例。

这个程序其实是考你的ACI码的熟悉程度,这个程序的运行结果其实是跟输入的字符串一样的!
while 语句的意思是把"#"作为字符串的结束标志,说到这里你明白了吗???

#include <stdio.h>
main()
{
char ch,nch; /*定义两个字符*/
int count; /*定义一个整型 */
int k; /*定义一个整型*/

printf("Please input a string with a # in the end.\n");
scanf("%c",&ch); /*从键盘上输入一个字符*/
while(ch != '#') /*当输入的字符不是‘#’时执行下面{}内的语句,直 到输入的是一个‘#’才会不执行此循环*/
{
if(ch >= '0' && ch <= '9')
/*如果输入的字符在‘0’-‘9’之间执行下面{}内的语句*/
{
count = ch-'0'+1;
/*假如该字符是‘8’,‘8’比‘0’的ASCLL码大8,所以cout的值是9 */
scanf("%c",&nch); /*输入一个字符,假如是‘a’*/
for(k=0;k<count;k++)/*按照上面的假设,该循环语句将连续输出9个‘a'*/
printf("%c",nch);
}
else /*如果输入的字符不在‘0’