下列程序运行时输入:This_is_a_C_Program! 运行结果为: __________
#include <stdio.h>
#include <string.h>
int main(void)
{
char str[81], a[81], b[81];
int n, i, j=0, k=0;
gets( str );
n=strlen( str );
for ( i=0; i<n; i++ )
{
if ( i%2==0 ) a[j++] = str[i];
if ( i%3==0 ) b[k++] = str[i];
}
a[j] = b[k] = '\0';
printf("%s ", a );
puts( b );
return 0;
}
循环里每次往a, b添加字符时,j, k都会自增,所以循环结束后,j, k指向字符串的结尾,然后添加'\0'
i == 0是,两个if条件都满足,所以a, b里都有字符T
for ( i=0; i<n; i++ )
{
if ( i%2==0 ) a[j++] = str[i];
if ( i%3==0 ) b[k++] = str[i];
}
这里i==0时, i%2==0 和 i%3==0均等于1,所以第一个字符都会存入到数组a,b中,所以a和b的第一个字符都是T