填空题 下面程序的功能是给一维数组a输入任意5个小于10的正整数,并输出经过5次逐位右移一位形成的方阵,请把程序补充完整。假设输入为:5 6 8 4 3,则输出的结果为:
3 5 6 8 4
4 3 5 6 8
8 4 3 5 6
6 8 4 3 5
5 6 8 4 3
#include<stdio.h>
int main()
{
int a[5], i, j, k, n;
for(i=0; i<5; i++)
scanf("%d", &a[i]);
for(n=1; n<=5; n++)
{
k=a[4];
for( 1; j>=0; j--)
a[j+1]=a[j];
2
for(i=0; i<5; i++)
printf("%d", a[i]);
printf("/n");
}
return 0;
}
【正确答案】
【答案解析】j=3 a[0]=k;[解析] 要实现a数组各元素的逐位右移,先将a数组最后一个元素a[4]的值赋予变量k,接着自右向左,每个数组元素依次被其前一个元素所替代,即利用循环语句中的for(j=3; j>=0; j--)进行控制,最后将存放在变量k中的值赋予a数组首个元素,即a[0]=k,从而完成一次右移过程。