解释一下这个C程序!

来源:百度知道 编辑:UC知道 时间:2024/05/09 12:00:26
main()
{char ch[7]={"65ab21"};
int i,s=0;
for(i=1;ch[i]>='0'&&ch[i]<='9';i+=2;)
s=10*s+ch[i]-'0';
printf("%d\n",s);
}我运行了一下,结果是6
还有有一个
#include<stdio.h>
main()
{char c[6];
int i=0;
for( i<6;c[i]=getchar();i++);
for (i=0;i<6;i++)
putchar(c([i]);
printf("\n")
如果从键盘上输入 ab回车
c回车
def回车
输出是 ab
c
d
我有点不明白,getchaar()只能接受一个字符啊!为什么不是a
b
c
d
e
f呢?

第四行有错误:最后多了一个分号.
第二行的意思是:定义一个字符数组.
for()循环只运行了一次,结果为5,第二次进入for()的时候,由于'b'不满足
条件,退出了for()循环.所以结果为5,不是6.

你咋算的..我运行后结果是5~而且第4行多了个';'
具体的我也不知道该怎么说,你看看这个,应该能给你一点启示:
#include <stdio.h>
main()
{
int i;
char s[10];
clrscr();
for(i=0;i<10;i++)
{
s[i]=getchar();
putchar(s[i]);
}
getch();
}

运行后,输入的字符数少于10个,则继续输入,直到够10个为止
超过10个,就只显示前10个.

我不知道你是在这里写错了还是在运行程序的时候也写错了。
有几个地方都没有分号,又有几个地方多了分号。。。。