// 题目二:输入某年某月某日,判断这一天是这一年的第几天?
// 1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊
// 情况,闰年且输入月份大于3时需考虑多加一天
#include <stdio.h>
#include <stdbool.h>
int main()
{
int year, month, day, num;
printf("请输入您需要输入的年份:");
scanf("%d", &year);
printf("请输入您需要输入的月份:");
scanf("%d", &month);
printf("请输入您需要输入的日期:");
scanf("%d", &day);
while (true)
{
if (month <= 0 || month > 12)
{
printf("您输入的月份有误,请重新输入");
scanf("%d", &month);
}
else
{
break;
}
}
switch (month)
{
case 1:
num = 0;
break;
case 2:
num = 31;
break;
case 3:
num = 59;
break;
case 4:
num = 90;
break;
case 5:
num = 120;
break;
case 6:
num = 151;
break;
case 7:
num = 181;
break;
case 8:
num = 212;
break;
case 9:
num = 243;
break;
case 10:
num = 273;
break;
case 11:
num = 303;
break;
case 12:
num = 334;
break;
default:
break;
}
// 首先 判断年份是否能够整除400或者4
if (year % 1000 == 0 && month >= 3)
{
if ((year / 1000) % 4 == 0)
{
num += day + 1;
/* code */
}
}
if (year % 4 == 0 && month >= 3)
{
num += day + 1;
/* code */
}
printf("这一天是该年的第 %d 天\n", num);
return 0;
}
// 题目三:输入三个整数x,y,z,请把这三个数由小到大输出。
// 1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,
// 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
#include <stdio.h>
void ArrToString(int arr[], int size)
{
printf("[");
for (int i = 0; i < size; i++)
{
printf("%d", arr[i]);
if (i < size - 1)
{
printf(",");
}
}
printf("]");
}
int main()
{
int x, y, z;
printf("请输入第一个数:\n");
scanf("%d", &x);
printf("请输入第二个数:\n");
scanf("%d", &y);
printf("请输入第三个数:\n");
scanf("%d", &z);
int arr[3] = {x, y, z};
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 2; j++)
{
int temp;
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
ArrToString(arr, 3);
return 0;
}
// 题目四:输出9*9口诀。
// 思路: 两个循环
#include <stdio.h>
int main()
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
int result = j * i;
printf("%d*%d=%-4d", j, i, result);
/* code */
}
printf("\n");
/* code */
}
}
// 题目五:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月
// 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
// 2 2 4 8 16 32 64 128
#include <stdio.h>
#include <math.h>
int main()
{
int a = 1;
int mount;
int result;
printf("请输入月份\n");
scanf("%d", &mount);
if (mount < 3)
{
result = a;
printf("该月兔子数量为:%d对", result);
return 0;
}
for (int i = 3; i <= mount; i++)
{
int m1 = a;
result = m1 + a;
a = result;
/* code */
}
printf("该月兔子数量为:%d对", result);
return 0;
}
若得青锋三尺剑,醉罢斩天落长虹 my丶q