用c语言编写一个程序,其功能是给一维数组a输入任意6个整数,

假设为:5 7 4 8 9 1,然后建立一个具有以下内容的方阵,并打印出来。

5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5
输入

输入为6个整数。全为当0时程序不处理并结束。

输出

输出为6组转移后的数。数与数之间有一个空格。

输入样列

5 7 4 8 9 1
0 0 0 0 0 0

输出样例

5 7 4 8 9 1
1 5 7 4 8 9
9 1 5 7 4 8
8 9 1 5 7 4
4 8 9 1 5 7
7 4 8 9 1 5
这是我写的代码,不知道哪里出问题了,交给答题系统是错的
#include<stdio.h>
#define N 1000
int main()
{
int a[N],k,i;
while(1)
{
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0)
break;
for(k=0;k<5;k++)
{
for(i=6;i>0;i--)
{
a[i]=a[i-1];
}
a[0]=a[6];
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("\n");
}
}
return 0;
}

第1个回答  2016-12-02
只有6个数,干嘛搞个a[1000]?按你的代码写法,int a[7]就可以了。没有发现你的代码有什么其他错误。本回答被提问者和网友采纳
第2个回答  2019-11-27
#include<stdio.h>
int main()
{
int a[6],k,i,t;
while(1)
{
for(i=0;i<6;i++)
{
scanf("%d",&a[i]);
}
if(a[0]==0&&a[1]==0&&a[2]==0&&a[3]==0&&a[4]==0&&a[5]==0)
break;
for(k=0;k<6;k++)
{
t=a[0];
a[0]=a[5];
for(i=5;i>0;i--)
{
a[i]=a[i-1];
}
a[1]=t;
for(i=0;i<6;i++)
printf("%d ",a[i]);
printf("\n");
}
}
return 0;
}
相似回答