经过我的验证 是着样的
main()
{
char *s="121";
printf("%c,%c,%c",s[0],s[1],s[2]);
getch();
}
输出 1,2,1
当你不会着种问题的时候 可以自己写个小程序来 验证一下嘛~!
----------------解决方案--------------------------------------------------------
以下是引用mp3aaa在2006-7-18 23:38:44的发言:
#include <stdio.h>
main()
{char *s="121" ;
int k=0,a=0,b=0;
do { k++;
if(k%2==0){a=a+s[k]-'0'; countinue;}
b=b+s[k]-'0';a=a+s[k]-'0';
}
while(s[k+1]);
printf("k=%d a=%d b=%d\n",k,a,b);
}
IF不是循环啊?
#include <stdio.h>
main()
{char *s="121" ;
int k=0,a=0,b=0;
do { k++;
if(k%2==0){a=a+s[k]-'0'; countinue;}
b=b+s[k]-'0';a=a+s[k]-'0';
}
while(s[k+1]);
printf("k=%d a=%d b=%d\n",k,a,b);
}
IF不是循环啊?
do
循环体语句
while(表达式);
----------------解决方案--------------------------------------------------------
以下是引用mp3aaa在2006-7-18 23:52:55的发言:
“char *s="121" ;可以得到 s[0]=1,s[1]=2,s[2]=1 是这样吗???”
经过我的验证 是着样的
main()
{
char *s="121";
printf("%c,%c,%c",s[0],s[1],s[2]);
getch();
}
输出 1,2,1
当你不会着种问题的时候 可以自己写个小程序来 验证一下嘛~!
“char *s="121" ;可以得到 s[0]=1,s[1]=2,s[2]=1 是这样吗???”
经过我的验证 是着样的
main()
{
char *s="121";
printf("%c,%c,%c",s[0],s[1],s[2]);
getch();
}
输出 1,2,1
当你不会着种问题的时候 可以自己写个小程序来 验证一下嘛~!
恩,接受建议
getch();好象不需要吧
[此贴子已经被作者于2006-7-19 0:04:59编辑过]
----------------解决方案--------------------------------------------------------
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *s = "121" ;
int k = 0, a = 0, b = 0;
do
{
k++; // first k = 1, second k == 2
if(k % 2 == 0) // first not execute, second execute
{
a = a + s[k] - '0'; // a = 3
countinue;
}
b = b + s[k] - '0'; // b = 0 + s[1] - '0', b = 2
a = a + s[k] - '0'; // a = a + s[1] - '0', a = 2
}while(s[k + 1]); // first s[k + 1] = 2, so continue loop
printf("k = %d a = %d b = %d\n",k,a,b);
exit(0); // k = 2 a = 3 b = 2
}
----------------解决方案--------------------------------------------------------
first learn coding canon
----------------解决方案--------------------------------------------------------
if(k%2==0){a=a+s[k]-'0'; countinue;}
==>
continue write error
----------------解决方案--------------------------------------------------------
What's the meaning of "coding canon"?
----------------解决方案--------------------------------------------------------
bian ma gui fan
----------------解决方案--------------------------------------------------------
以下是引用摄政王:多尔滚在2006-7-19 0:04:07的发言:
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *s = "121" ;
int k = 0, a = 0, b = 0;
do
{
k++;
// first k = 1, second k == 2
if(k % 2 == 0) // first not execute, second execute
{
a = a + s[k] - '0'; // a = 3
countinue;
}
b = b + s[k] - '0'; // b = 0 + s[1] - '0', b = 2
a = a + s[k] - '0'; // a = a + s[1] - '0', a = 2
}while(s[k + 1]); // first s[k + 1] = 2, so continue loop
printf("k = %d a = %d b = %d\n",k,a,b);
exit(0);
// k = 2 a = 3 b = 2
}
#include <stdlib.h>
#include <stdio.h>
int main(void)
{
char *s = "121" ;
int k = 0, a = 0, b = 0;
do
{
k++;
// first k = 1, second k == 2
if(k % 2 == 0) // first not execute, second execute
{
a = a + s[k] - '0'; // a = 3
countinue;
}
b = b + s[k] - '0'; // b = 0 + s[1] - '0', b = 2
a = a + s[k] - '0'; // a = a + s[1] - '0', a = 2
}while(s[k + 1]); // first s[k + 1] = 2, so continue loop
printf("k = %d a = %d b = %d\n",k,a,b);
exit(0);
// k = 2 a = 3 b = 2
}
第一次,k=0,自增后k=1,if 条件不满足,b=2 a=2 while(1)条件满足
第二次,k=1,自增后k=2, if条件满足,a=3 遇countinue结束本次循环
然后while(s[3]);因为s[3]=Null,所以跳出循环,
你想说的,是这样的吗?
----------------解决方案--------------------------------------------------------
然后while(s[3]);因为s[3]=Null,所以跳出循环,
==>
yes, but s[3] is '\0'
----------------解决方案--------------------------------------------------------