按要求输入如下格式的杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
最多输出10层
标签:一个 color for std print 答案 错误 amp code
按要求输入如下格式的杨辉三角
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
最多输出10层
5
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
错误答案:
1 #include<stdio.h> 2 int main(){ 3 int Yhui[10][10]; 4 for(int i = 0; i < 10; i++){ 5 Yhui[i][0] = 1; 6 Yhui[i][i] = 1; 7 for(int j = 1; j < i; j++){ 8 Yhui[i][j] = Yhui[i-1][j-1] + Yhui[i-1][j]; 9 } 10 } 11 int num; 12 scanf("%d", &num); 13 if(num > 10){ 14 printf("请输入小于10的整数!\n"); 15 return 0; 16 } 17 for(int i = 0; i <= num; i++){ 18 for(int j = 0; j <= i; j++){ 19 printf("%d", Yhui[i][j]); 20 printf(" "); 21 } 22 printf("\n"); 23 } 24 return 0; 25 }
因为没有考虑到i的取值,导致(i -1)越界,改了很久,正确答案如下:
1 #include<stdio.h> 2 int main(){ 3 int n, i, j; 4 scanf("%d", &n); 5 int a[n][n]; 6 for(i=0; i<n; i++){ 7 a[i][i] = 1; 8 a[i][0] = 1; 9 } 10 for(i=2; i<n; i++){ 11 for(j=1; j<i; j++){ 12 a[i][j] = a[i-1][j-1] + a[i-1][j]; 13 } 14 } 15 for(i=0; i<n; i++){ 16 for(j=0; j<=i; j++){ 17 printf("%d ", a[i][j]); 18 } 19 printf("\n"); 20 } 21 return 0; 22 }
标签:一个 color for std print 答案 错误 amp code
原文地址:https://www.cnblogs.com/narnia/p/11077565.html