读书人

算法分析解决思路

发布时间: 2012-02-12 17:16:33 作者: rapoo

算法分析
#include <stdio.h>
int main()
{
int i,j,k;
for(i=0;i <3;i++)
{
for(j=1;j <=3;j++)
{
if(j <i+1)
printf( " \t ");
else
printf( "%d\t ",i*3+j);
}
printf( "\n ");
}
return 0;
}
该算法实现输出方阵上三角,并保证形状不变。
原本输出是直角三角形,可否在此基础上实现输出等腰直角三角形,用c语言能不能实现?
j <=3,i*3+j都是怎么来的,有人能说说来胧去脉吗?

[解决办法]
#include <stdio.h>
int main()
{
int i,j,k;
for(i=0;i <3;i++) // i控制行数
{
for(j=1;j <=3;j++) // 控制列数
{
if(j <i+1) //控制前面的跳格
printf( " \t ");
else
printf( "%d\t ",i*3+j); //输入数以及跳格..
}
printf( "\n ");
}
return 0;
}

/*
i*3+j;i代表行数,一行有三个数,所以*3,j代表当前列数,为了与我们平常习惯相同,所以他从1开始计,如果从0开始计的话
for(j=0;j <3;j++)
....
if(j <i)
..
printf( "%d\t ",i*3+j+1);


明白了吗?
*/

读书人网 >C语言

热点推荐