1. #include <stdio.h> 2. 3. int main() { 4. int n; 5. int i, j, a[100][100], k; //定义3个循环变量 6. printf("输入杨辉三角行数n="); 7. scanf("%d", &n); 8. 9. for (i = 0; i < n; i++) { 10. a[i][0] = 1;//每行第一个 11. a[i][i] = 1; //每行最后一个 12. } 13. 14. for (i = 2; i < n; i++) { 15. for (j = 0; j <= i; j++) { 16. //对应坐标 上一行(上一个+相同j的一个) 17. a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; 18. } 19. } 20. 21. printf("%d行杨辉三角如下:\n", n); 22. for (i = 0; i < n; i++) { 23. for (k = 0; k <= n - i; k++) 24. //加一个变量k,下一个遍历数组时打印空格个数为n-i 25. printf(" "); 26. for (j = 0; j <= i; j++) { 27. printf("%6d", a[i][j]); 28. } 29. printf("\n"); 30. } 31. 32. 33. printf("\n\n倒置:\n"); 34. for (i = n - 1; i >= 0; i--) { 35. for (k = 0; k <= n - i; k++) 36. printf(" "); 37. for (j = 0; j <= i; j++) 38. printf("%6d", a[i][j]); 39. printf("\n"); 40. } 41. 42. printf("\n\n一行:\n"); 43. //打印成一行 44. for (i = 0; i < n; i++) 45. for (j = 0; j <= i; j++) 46. printf("%d ", a[i][j]); 47. 48. 49. 50. return 0; 51. }