!!!!!!!!!!C菜鸟请高手帮忙!!!!!!!!!!!!!!!!!

来源:百度知道 编辑:UC知道 时间:2024/09/12 16:24:17
/* */
#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"); /* */
}

请各位大侠帮小弟说说此程序的的意思以及对各种不同输入所产生的结果的原因

/*标准输入输出头文件 */
#include <stdio.h>
main()
{
char ch,nch; /*声明两个char型变量 */
int count; /* int变量*/
int k; /* 同上*/

printf("Please input a string with a # in the end.\n");
scanf("%c",&ch); /*输入一个字符到存到ch中 */
while(ch != '#') /* 当这个字符不是 # ,进入循环*/
{
if(ch >= '0' && ch <= '9')
{
/*如果这个字符是数字 */
count = ch-'0'+1; /*根据ASCII码转换成整数 */
scanf("%c",&nch); /*输入一个字符到存到ch中 */
for(k=0;k<count;k++) /* 重复输出nch字符count次*/
printf("%c",nch);
}
else
printf("%c",ch); /*否则输出ch,对应不是数字的情况 */
printf(" "); /*输出空格 */
scanf("%c",&ch); /*输入 */
}
printf("#\n"); /*输出#号 */
}
总的来说就是输入一个字符串,当它检测到一个数字字符的时候会把这个数字后面的字符(包括数字)重复输出这个数字加1次,没有检测到数字就直接输出这个字符,遇到#退出.