C语言二维数组打印三角形问题
#include"stdio.h"voidmain(){inta[3][3];inti,j;for(i=0;i<=2;i++)for(j=0;j<=2;j++)scanf...
#include "stdio.h"
void main()
{
int a[3][3]; int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d",a[i][j]);
printf("\n");
}
getch();
}
输入123456789
会打印
123
456
789.
现在想打印出如下效果:请问怎么修改?
3
56
789;
1
45
789;
123
56
9;
本人刚学C语言,请不要见笑。 展开
void main()
{
int a[3][3]; int i,j;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
printf("%d",a[i][j]);
printf("\n");
}
getch();
}
输入123456789
会打印
123
456
789.
现在想打印出如下效果:请问怎么修改?
3
56
789;
1
45
789;
123
56
9;
本人刚学C语言,请不要见笑。 展开
2个回答
展开全部
#include <stdio.h>
int main() {
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int i,j;
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( i+j > 1 )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
putchar('\n');
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( i >= j )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
putchar('\n');
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( j >= i )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
return 0;
}
我这里的 是一个容易理解的加长版,3种格式3种循环,关键的地方就在那几个判断语句的地方。也就是上面的同学写的三种case情况。
上面同学引入k变量的原因是用来对3种输出进行选择,选到哪个哪个就输出。可以知道k从0~2所以三种输出轮流输出,就能达到效果了。
我写的就是把他那些给铺开来了。容易理解,但代码重复,变长了。
以上就是这样。~
int main() {
int a[3][3] = {1,2,3,4,5,6,7,8,9};
int i,j;
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( i+j > 1 )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
putchar('\n');
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( i >= j )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
putchar('\n');
for( i=0 ; i < 3; i++ )
{
for( j=0 ; j < 3 ; j++ )
{
if( j >= i )
{
printf("%d",a[i][j]);
}
else
{
putchar(' ');
}
}
putchar('\n');
}
return 0;
}
我这里的 是一个容易理解的加长版,3种格式3种循环,关键的地方就在那几个判断语句的地方。也就是上面的同学写的三种case情况。
上面同学引入k变量的原因是用来对3种输出进行选择,选到哪个哪个就输出。可以知道k从0~2所以三种输出轮流输出,就能达到效果了。
我写的就是把他那些给铺开来了。容易理解,但代码重复,变长了。
以上就是这样。~
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include "stdio.h"
void main()
{
int a[3][3]; int i,j,k;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for(k=0;k<3;k++)
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
switch(k)
{
case 0:if(j<2-i){putchar('\040');continue;}break;
case 1:if(j>i) {putchar('\040');continue;}break;
case 2:if(j<i) {putchar('\040');continue;}break;
}
printf("%d",a[i][j]);
}
printf("\n");
}
getch();
}
void main()
{
int a[3][3]; int i,j,k;
for(i=0;i<=2;i++)
for(j=0;j<=2;j++)
scanf("%d",&a[i][j]);
for(k=0;k<3;k++)
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
switch(k)
{
case 0:if(j<2-i){putchar('\040');continue;}break;
case 1:if(j>i) {putchar('\040');continue;}break;
case 2:if(j<i) {putchar('\040');continue;}break;
}
printf("%d",a[i][j]);
}
printf("\n");
}
getch();
}
追问
嗯,有几处不是很懂,还请大虾告知。
case 0:if(ji) {putchar('\040');continue;}break;
case 2:if(j<i) {putchar('\040');continue;}break;
这几行代码的含义。
尤其是if语句的判断条件和putchar('\040')。
变量k的引入,有什么含义呢?
我单独书写只成功完成了
123
45
7
这三个效果单独书写的if判断是怎么样的?需要引入另外一个变量吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询