问个C语言的问题

来源:百度知道 编辑:UC知道 时间:2024/05/24 13:19:22
#include<stdio.h>
void main()
{
int i,j,k,n;
int a[100];
printf("请输入字符个数");
scanf("%d",&k);
for(i=0;i<k;i++)
{
scanf("%d",&a[i]);
}
for(i=0,j=k-1;i<k/2;i++,j--)
{
n=a[i];
a[i]=a[j];
a[j]=n;

}
for(i=0;i<k;i++)
{
printf("%4d",a[i]);

}
}
for(i=0,j=k-1;i<k/2;i++,j--)这里头的i<k/2是什么意思?为何要打?请说明谢谢

for(i=0,j=k-1;i<k/2;i++,j--)
{
n=a[i];
a[i]=a[j];
a[j]=n;
}
功能是如果字符有100个,就把前50个字符和50个字符交换位置,i<k/2是指的前50个字符,j=k-1是指的后50个字符,当前的J表示最后一个字符,J是从最后一个字符后退的,如果如果有6个字符,ABCDEF则运行结果为FEDCBA即第一字符和最后一个字符交换,第二个和倒数第二个交换,依次类推

printf("请输入字符个数");
scanf("%d",&k);
k=你输入的数字(Double型的)
那么for(i=0,j=k-1;i<k/2;i++,j--)中的k=你输入的数字,这里用到了一个for循环语句,解释:当i=0,j<k的值-1的时候执行
{n=a[i];
a[i]=a[j];
a[j]=n;
}
如果i<k的值除上2的话,那么i在++,J--

这是一个数组前后交换的程序,当然了k/2是一半.因为前后交换肯定是交换一半了

就是一个简单的前后交换程序啊