怎么样用C++输出这样一个杨辉三角形 如图这样输出 要用上数组知识
来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/11 05:09:54
怎么样用C++输出这样一个杨辉三角形 如图这样输出 要用上数组知识
1 1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15
1 4 10 20
1 5 15
1 6
1
1 1 1 1 1 1 1
1 2 3 4 5 6
1 3 6 10 15
1 4 10 20
1 5 15
1 6
1
#include
#include
#include
int main(void)
{
int n = 0;
int **a;
int i, j, k;
printf("Input n:");
scanf("%d", &n);
a = (int **)malloc(sizeof(int *)*n);
for (i = 0; i < n; ++i)
{
a[i] = (int *)malloc(sizeof(int)*n);
}
for (i = 0; i < n; ++i)
{
for (j = i; j < n; ++j)
{
if (i==0)
a[i][j]=1;
else
a[i][j] = a[i][j-1] + a[i-1][j-1];
}
}
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
{
if (a[i][j] == 0)
printf(" ");
else
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
再问: 看看你的程序的结果 是一些随机数 还有#include #include #include 这三个头文件 我都没学呢 请用一些简单的方法做吧 只用数组和循环能做这个吗?
再答: #include #include #include int main(void) { int n = 0; int **a; int i, j, k; printf("Input n:"); scanf("%d", &n); a = (int **)malloc(sizeof(int *)*n); for (i = 0; i < n; ++i) { a[i] = (int *)malloc(sizeof(int)*n); memset(a[i], 0, sizeof(int)*n); } for (i = 0; i < n; ++i) { for (j = i; j < n; ++j) { if (i==0) a[i][j]=1; else a[i][j] = a[i][j-1] + a[i-1][j-1]; } } for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { if (a[i][j] == 0) printf(" "); else printf("%4d", a[i][j]); } printf("\n"); } free(a); return 0; } 你应该是window下的编译器 我再linux下 是不一样的!这个就应该可以了!
再问: 程序能实现了 但是有一点还是不明白:为什么要声明一个**a ;a的指针的指针,声明*a不行吗? 这个我看不懂啊 麻烦大哥(大姐)再帮帮小弟吧^_^
再答: 因为 是一个二维数组啊! 用的就是二级指针了!
#include
#include
int main(void)
{
int n = 0;
int **a;
int i, j, k;
printf("Input n:");
scanf("%d", &n);
a = (int **)malloc(sizeof(int *)*n);
for (i = 0; i < n; ++i)
{
a[i] = (int *)malloc(sizeof(int)*n);
}
for (i = 0; i < n; ++i)
{
for (j = i; j < n; ++j)
{
if (i==0)
a[i][j]=1;
else
a[i][j] = a[i][j-1] + a[i-1][j-1];
}
}
for (i = 0; i < n; ++i)
{
for (j = 0; j < n; ++j)
{
if (a[i][j] == 0)
printf(" ");
else
printf("%4d", a[i][j]);
}
printf("\n");
}
return 0;
}
再问: 看看你的程序的结果 是一些随机数 还有#include #include #include 这三个头文件 我都没学呢 请用一些简单的方法做吧 只用数组和循环能做这个吗?
再答: #include #include #include int main(void) { int n = 0; int **a; int i, j, k; printf("Input n:"); scanf("%d", &n); a = (int **)malloc(sizeof(int *)*n); for (i = 0; i < n; ++i) { a[i] = (int *)malloc(sizeof(int)*n); memset(a[i], 0, sizeof(int)*n); } for (i = 0; i < n; ++i) { for (j = i; j < n; ++j) { if (i==0) a[i][j]=1; else a[i][j] = a[i][j-1] + a[i-1][j-1]; } } for (i = 0; i < n; ++i) { for (j = 0; j < n; ++j) { if (a[i][j] == 0) printf(" "); else printf("%4d", a[i][j]); } printf("\n"); } free(a); return 0; } 你应该是window下的编译器 我再linux下 是不一样的!这个就应该可以了!
再问: 程序能实现了 但是有一点还是不明白:为什么要声明一个**a ;a的指针的指针,声明*a不行吗? 这个我看不懂啊 麻烦大哥(大姐)再帮帮小弟吧^_^
再答: 因为 是一个二维数组啊! 用的就是二级指针了!
C程序数组赋值 输入一个整数,然后各位数反转后输出,如:234,输出432
用一个循环 输出二维数组
如何用C语言编一个程序,输入一个二维数组,然后以一个矩阵的方式输出.
c语言 输入一个字符一个数,s[10]=“ABCDE”.如:输入*和数组3,则输出 “AB*CDE”
C语言 用二维数组编程输出如下图形
用C语言编程,输出一个1到9组成的二维数组的上三角,如1 2 3 5 6 9的图形出来,
求杨辉三角形程序算法哪位大神知道等腰杨辉三角形的算法怎么写,还有程序(用c语言编写),而且用二维数组编写,要求输出十行,
C语言二维数组乘积输出
C 语言 一维整形数组将数组元素逆序存放并把交换后的数组输出 要求数组元素的输入,交换和输出分别用函数
输入一个数 要输出这样 用循环语句 for for二次循环 例如输入5 输出5 4 3 2 1 4 3 2 1 3 2
用c语言将10个实数存储在一个数组中,设计一个程序输出这个数组的最大值和最小值.
C语言 输出数字三角形