采用while循环:
#include<stdio.h>
int main()
{
char arr1[] = "ni hao peng you";
char arr2[] = "###############";
printf("%s\n", arr2);
int left = 0;
int right = strlen(arr1)-1;
while (left <= right)
{
Sleep(1000);
arr2[left] = arr1[left];
arr2[right] = arr1[right];
left++;
right--;
printf("%s\n", arr2);
}
return 0;
}
采用for循环:
#include<stdio.h>
int main()
{
char arr1[] = "ni hao peng you";
char arr2[] = "###############";
printf("%s\n", arr2);
int left = 0;
int right = strlen(arr1)-1;
for(left=0,right= strlen(arr1) - 1;left<=right;left++,right--)
{
Sleep(1000);
arr2[left] = arr1[left];
arr2[right] = arr1[right];
printf("%s\n", arr2);
}
return 0;
}
本代码通过定义left和right两个变量实现arr1和arr2两个数组内容的转移。在循环中,将arr1的值分别从最左边和最右边赋给arr2实现从两端向中间汇聚。改变 left和right两个变量的值使转移的数字向中间移动。
输出结果:
###############
n#############u
ni###########ou
ni #########you
ni h####### you
ni ha#####g you
ni hao###ng you
ni hao #eng you
ni hao peng you