打印特殊矩阵
从键盘输入6个数字,编程实现如下形式的输出:
1 2 3 4 5 6
6 1 2 3 4 5
5 6 1 2 3 4
4 5 6 1 2 3
3 4 5 6 1 2
2 3 4 5 6 1
=================使用指针=======================
#include<stdio.h>
#define n 6
int main(void)
{
//变量定义-------------------
int a[n]={0};
int *p=NULL,*q=NULL,*y=NULL;
int i=0,count=0;
//输入数据-------------------
printf("请输入%d个整数:",n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
printf("\n");
//处理数据并输出
p=a;
q=p+n-1;
y=p+n-1;
printf("\t");
for(i=0;i<n;i++)
printf("%d ",a[i]);//打印出第一行的数字
printf("\n");
while(count<n-1)
{
printf("\t");
while(q<=(a+n-1))
{
printf("%d ",*q);
q++;
}
q=--y;
while(p<=q)
{
printf("%d ",*p);
p++;
}
printf("\n");
count++;
p=a;//将p重新指向数组第一个元素
}
printf("\n\n");
return 0;
}
===============使用数组=======================
#include<stdio.h>
#define num 6
int main(void)
{
int a[num]={0},i=0,j=0,k=0;
printf("请输入%d个整数:",num);
for(i=0;i<num;i++)
scanf("%d",&a[i]);
printf("\n\t");
for(i=0;i<num;i++)
printf("%d ",a[i]);//打印出a[0]-a[5]
printf("\n");
for(i=0;i<num-1;i++)
{
printf("\t");
for(j=num-1-i;j<num;j++)
printf("%d ",a[j]);
for(k=0;k<num-1-i;k++)
printf("%d ",a[k]);
printf("\n");
}
printf("\n\n");
return 0;
}
浙公网安备 33010602011771号