洛阳理工学院附近宾馆:C语言输出以*组成的三角形,请问怎么完成?用什么办法?

来源:百度文库 编辑:杭州交通信息网 时间:2024/05/06 09:11:05
*
***
*****
*******
这样应该怎么样完成?
第一行输出几个空格然后打出一个*?
第二行……
请把程序打出来啦?

楼主自己都打印的不对嘛!
*
***
*****
*******
是要这样的么?(汗!我也忘了知道一发就自动左对齐了……)
给你几种方法吧:
1.最简单好理解的方法:
#include<stdio.h>
main()
{
int i,a,b,c=1;
for(i=1;i<=5;i++)
{
for(a=1;a<=5-i;a++) printf(" ");
for(b=1;b<=c;b++) printf("*");
printf("\n");
c+=2;
}
system("pause");
}
2.//最简单的,但有点不好理解的方法
#include "stdio.h";
#define N 5 /* N为阶数,可以改为其他正整数 */
main()
{
int m=N*2,i,j;
for(i=1;i<m;printf("\n"),i++)
for(j=1;j<m;putchar(i-N<=abs(j++-N)?' ':'*'));
getch();
}

3.//不怕被扣分,就一不做二不休这样老师也哭笑不得
#include <stdio.h>
main()
{
printf("\n");
printf(" *\n"); //*前加4个空格
printf(" ***\n"); //*前加3个空格
printf(" *****\n"); //*前加2个空格
printf(" *******\n"); //*前加1个空格,贴出来就变形了晕
getch();
}
4.
//用gotoxy函数来实现
具体代码也超好理解,时间关系不多说了。

#include<stdio.h>
void main()
{
int i,j,n;
printf("n为要输入的三角形多少行:");
scanf("%d",n);
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
printf("*");
}

二维数组吧

用一个双重循环,简间搞定