C语言打印三角形-第几行输出几个几

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
int main()
{
	int a,b,i,k;
	a=1;
	printf("请输入一个正整数以打印三角形");
	scanf("%d",&k);//获取输入的值
	while(a<=k)//循环行数
	{
		b=a;//每行输出几
		i=1;//每行输出几个
		while(i<=a)//循环列数
		{
			printf(" %d",b);
			i=i+1;
		}
		printf("\n");
		a=a+1;
	}
	system("pause");
	return 0;
}

 

参考已有文档,至少有三种用C语言打印杨辉三角形的方法: 1. **嵌套循环法**:使用嵌套循环完成,先定义整形数据代表要打印的杨辉三角形数,初始化二维数组,通过外层循环遍历,将每第一个数字赋值为1,打印空格,再通过内层循环打印数字,将每末尾数字赋值为1,中间数字赋值为上顶上两个数之和,最后每打印结束后换。示例代码如下: ```c #include <stdio.h> int main(int argc, char *argv[]) { int n; printf("请输入要打印的杨辉三角形数:"); scanf("%d", &n); int a[32][32] = {0}; int i, j; for (i = 0; i < n; i++) { a[i][0] = 1; for (j = 1; j < n - i; j++) { printf(" "); } for (j = 0; j <= i; j++) { if (i == j) { a[i][j] = 1; } else { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } printf("%-3d ", a[i][j]); } printf("\n"); } return 0; } ``` 2. **函数调用法**:先完成大致框架,定义高度上限,建立二维数组并填充杨辉三角的值,打印杨辉三角,包括空格对齐,在主函数中输入有效高度,调用函数设置杨辉三角的值,再调用函数打印杨辉三角。示例代码如下: ```c #include <stdio.h> #define MAX 10 void setnum(int h, int arr[MAX][MAX]); void printpascals(int h, int arr[MAX][MAX]); int main() { int h; int arr[MAX][MAX] = { 0 }; while (1) { printf("请输入杨辉三角的高 ", MAX); scanf("%d", &h); if (h > 0 && h <= MAX) { break; } else { printf("输入无效,请重新输入\n"); } } setnum(h, arr); printpascals(h, arr); return 0; } ``` 3. **二维数组法**:先定义一个二维数组,令两边的数为1,除两边的数外,任何一个数为上两顶数之和,最后输出杨辉三角,在输出数之前打上空格占位,让输出的数更美观。示例代码如下: ```c #include <stdio.h> #define N 14 void main() { int i, j, k, n = 0, a[N][N]; printf("请输入要打印数:"); scanf("%d", &n); printf("%d杨辉三角如下:\n", n); for (i = 1; i <= n; i++) a[i][1] = a[i][i] = 1; for (i = 3; i <= n; i++) for (j = 2; j <= i - 1; j++) a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; for (i = 1; i <= n; i++) { for (k = 1; k <= n - i; k++) printf(" "); for (j = 1; j <= i; j++) printf("%6d", a[i][j]); printf("\n"); } printf("\n"); } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值