c语言输出三角形

用c语言实现这个数字三角形的输出?不会啊 求助!

输出步骤如下:

    //输入正整数n<=20输出一个n层的倒三角形.例如n=5则输出如下所示

    // 解题思路 每层是2n-1个* 5-i个空格 双层for循环

    /*

    #########

    #######

    #####

    ###

    #

    */

    #include<stdio.h>

    int main(){

    int n;

    scanf("%d",&n);

    for(int i=n;i>0;i--){

    for(int j=1;j<=2*i-1;j++){

    printf("#");

    }

    printf("\n");

    for(int j=0;j<=5-i;j++){

    printf(" ");

    }

    }

    return 0;

拓展资料:

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-12-19
这个是杨辉三角形,有规律的,两连全是,中间每个数字是上面两个数字之和。
解法太多,下面是六种解法,自己参考
http://blog.sina.com.cn/s/blog_520db5ec01009c1c.html追问

这个不是杨辉三角形吧?

追答

是不太一样啊,但可以借鉴杨光三解的程序,这个类似杨光三解,只是变化了一下。程序也可以相应变化一下。

两边全是1,
下面的值除了中间的值,都是上面两肩值的和,中间值例外,是自己头顶值的2倍。

第2个回答  2015-12-16
#include "stdio.h"

int main(void)
{
int i, j, k;

for (i = 1; i <= 4; i++)
{
for (k = i; k >= 1; k--)
printf("*");
for (j = 4 - i; j >= 1; j--)
printf(" ");
printf("\n");
}//左对齐
printf("左对齐\n");

for (i = 3; i >= 0; i--)
{
for (k = i; k >= 1; k--)
printf(" ");
for (j = 1; j <= 4 - i; j++)
printf("*");
printf("\n");
}//右对齐
printf("右对齐\n");

for (i = 4; i >= 1; i--)
{
for (k = i; k >= 1; k--)
printf("*");
for (j = 0; j <= 3; j++)
printf(" ");
printf("\n");
}//倒左对齐
printf("倒左对齐\n");

for (i = 4; i >= 1; i--)
{
for (k = 4 - i; k >= 1; k--)
printf(" ");
for (j = i; j >= 1; j--)
printf("*");
printf("\n");
}//倒右对齐
printf("倒右对齐\n");

return 1;
}
第3个回答  2014-12-19
#include<stdio.h>
#define num 4
int main() {
int a[num][num], j, k, n;
for(j = 0; j < num; ++j){
for(k = 0; k <=j; ++k) {
if(k == 0) {
a[j][k] = 1;
}
else if(k == j) {
a[j][k] = 2 * a[j - 1][k - 1];
}
else {
a[j][k] = a[j - 1][k -1] + a[j - 1][k];
}
}
}

for(j = 0; j < num; ++j){
n = num - 1 - j;
while(n--)
printf(" ");
for(k = 0; k <j; ++k) {
printf("%d", a[j][k]);
}
for(k = j; k >= 0; --k) {
printf("%d", a[j][k]);
}
printf("\n");
}

return 0;
}
数字间空格我不弄了追问

谢谢啦!我懂啦..
另外数字键的空格只要 ‘%d’后边敲几个空格就ok啦!printf("%d ", a[j][k]);

追答

还可以优化

本回答被提问者采纳

C语言输出一个正三角形?
2、接着定义变量并确定行数,这里用3个for循环,外层的for循环用来遍历行数,里面的第一个for循环确定空格数量,另一个for循环确定每一行星号数量并换行,图像的输出也是在for循环中完成的:3、程序编写完成,运行程序观察输出结果,可以看到其中输出了正三角形的形状。以上就是用c语言输出正三角形演示:

用c#如何输出:“三角形”?
intmain(){ floata,b,c;scanf("%f%f%f",&a,&b,&c);if(a+b>c&&a+c>b&&b+c>a)printf("可以构成三角形\\n");elseprintf("不能构成三角形\\n");getch();return0;}

用c语言输出九九乘法表
2、输出右上三角形:include stdio.h int main() { int i,j;for(i=1;i=9;i++){ for(j=1;j=9;j++){ if(ji)\/\/打印八个空格,去掉空格就是左上三角形 printf();else printf(%d*%d=%2d ,i,j,i*j);} printf(n);} return 0;} 3、输出右下三角形:include stdio.h int mai...

c语言题目:输入三个数,输出是三角形或不是,并判断三角形类型,如何编 ...
include\\x0d\\x0aint main()\\x0d\\x0a{\\x0d\\x0afloat a,b,c;\\x0d\\x0ascanf("%f%f%f",&a,&b,&c);\\x0d\\x0aif(a>0 && b>0 && c>0 && a+b>c && a+c>b && b+c>a)\\x0d\\x0a{\\x0d\\x0aif(a==b && b==c)\\x0d\\x0a{\\x0d\\x0aprintf("等边三角形...

C语言输出一个直角三角形
如下所示:for(i=1;i<=n;i++) 这个循环是打印i行。里面的循环就是每行要打印的东西。for(j=1;j<=i*2-1;j++) 意思就是第i行,打印i*2-1个星号。于是就一次是1 3 5 7...个星号。

C语言编程 打印数字字符图案 输入任意整数n,输出n行由数字构成的三角形...
C语言程序如下:includestdio.h intmain(){ inta=0;\/\/从0开始。intn;\/\/输入的行数,每行的字符数 scanf(%d,n);while(n)\/\/括号内n表示n!=0.{ inti;for(i=0;in;i++)\/\/\/注意n随着while循环变化的,n在不停的减少,{ a++;printf(a+“);\/\/每个字符后面都有一个空格。} n--;prin...

如何用C语言的循环结构输出一个三角形
我们用 * 来构成三角形,要输出三角形,要考虑到构成三角形 * 前面的空格,而 每一行* 和空格的数目又是有规律的,因此可以用for循环里面在嵌套2个for循环来输出:include<stdio.h>void main(){int i,j;for(i=0;i<5;i++){ for(j=0;j<4-i;j++)printf(" ");for(j=0;j<2*i+...

C语言*号输出一个倒直角三角形
include<stdio.h> main(){ int i,j,k,z;scanf("%d",&k);for(i=k;i>=0;i--){ for(j=0;j

c语言输出三角形
\/\/输入正整数n<=20输出一个n层的倒三角形.例如n=5则输出如下所示 \/\/ 解题思路 每层是2n-1个* 5-i个空格 双层for循环 \/ \/ include<stdio.h> int main(){ int n;scanf("%d",&n);for(int i=n;i>0;i--){ for(int j=1;j<=2*i-1;j++){ printf("#");} printf("\\n")...

c语言如何输出星号三角形***
1、打开visual C++ 6.0-文件-新建-文件-C++ Source File 2、输入预处理命令和主函数,如下图所示:3、定义变量并确定行数,如下图所示:4、确定空格数量,如下图所示:5、确定每一行星号数量并换行,如下图所示:6、运行如下:

相似回答