马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
如题,我写了个短程序来试验这个功能,但是运行结果并非我想象的那样
代码如下
#include<stdio.h>
void main()
{
char num[100]={0} ; /将字符存放到这些数组内
char ch[100]= {0} ; //此处是暂时存放字符,用来赋值给num
int k , i=0 , j=0 ; //将ch数组中的值赋值给num数组所必须的变量
printf("Please input a sentence :");
while ( ( ch[j]=getchar() ) >= '0' && ( ch[j]=getchar() ) <= '9') //执行循环的条件
{
num[i++]=ch[j++];
}
j=0; //由于上一条语句改变了j的值,利用这一条语句给j重新赋值
printf("存放在num数组内的字符是:");
for(k=0;k<=i;k++)
{
printf(" %c ",ch[j++]);
}
}
运行之后的结果十分奇怪,只能打印第2,4,6。。。个数(即第偶数位个数),希望能有人给我指点一下,我单步调试后也发现程序进行第一个赋值的时候是直接从第二个开始的,例如我输入123,它只能打印2.
如果里面的条件改为while( ( ch[j]=getchar() )!='\n')的话,程序是可以正常运行的,因为我是自己想出这种算法,想用这种算法来套用这里让我完成另一个程序
|