C语言编程:杨辉三角形与判断闰年月份天数

需积分: 13 4 下载量 111 浏览量 更新于2024-09-12 1 收藏 117KB DOC 举报
“C语言题库,包含打印杨辉三角形及计算某年某月天数的编程题目。” 本文将详细解析两个C语言编程题目及其解决方案。 ### 题目一:打印杨辉三角形(10行) 杨辉三角形是二项式系数的一种几何表示,每一行的两端都是1,中间的数字是上一行相邻两个数字之和。以下是程序的解析: ```c #include "stdio.h" main() { int i, j; int a[10][10]; // 初始化第一行和最后一行为1 for (i = 0; i < 10; i++) { // 更正:将for(i=1;i<10;i++)改为for(i=0;i<10;i++) a[i][0] = 1; a[i][i] = 1; } // 计算中间的值 for (i = 1; i < 10; i++) { // 更正:将for(i=1;i<10;i--)改为for(i=1;i<10;i++) for (j = 1; j < i; j++) { a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; } } // 打印结果 for (i = 0; i < 10; i++) { for (j = 0; j <= i; j++) { printf("%5d", a[i][j]); } printf("\n"); } getch(); } ``` 在程序中,首先初始化第一行和最后一行的值为1,然后通过两层循环计算中间的值。最后,用两层循环打印出整个杨辉三角形。修正后的循环条件可以确保正确地初始化和填充数组。 ### 题目二:计算某年某月的天数 这个程序用于判断输入的年份和月份,输出该月的天数,考虑到闰年的特殊性。 ```c #include<stdio.h> void main() { int yy, mm, len; printf("year, month="); scanf("%d%d", &yy, &mm); // 根据年份和月份判断天数 switch(yy) { case 1: // 一月 case 3: // 三月 case 5: // 五月 case 7: // 七月 case 8: // 八月 case 10: // 十月 case 12: // 十二月 len = 31; // 这些月份都有31天 break; // 不需要更正 case 4: // 四月 case 6: // 六月 case 9: // 九月 case 11: // 十一月 len = 30; // 这些月份都有30天 break; case 2: // 二月 if (yy % 4 == 0 && yy % 100 != 0 || yy % 400 == 0) // 判断是否为闰年 len = 29; // 闰年的二月有29天 else len = 28; // 普通年份的二月有28天 break; default: // 输入错误 printf("input error!\n"); break; } printf("The length of %d%d is %d\n", yy, mm, len); } ``` 此程序使用switch-case结构来根据年份判断月份的天数。对于二月,程序会检查年份是否为闰年:如果年份能被4整除但不能被100整除,或者能被400整除,则该年是闰年,二月有29天。 总结来说,这两个C语言题目分别涉及二维数组的操作和日期计算,是学习基本编程概念和逻辑控制的好例子。通过解决这些问题,我们可以深入理解数组、循环、条件语句以及对闰年规则的理解。