给定数字N ,任务是查找与每个月对应的天数,其中1是一月,2是二月,3是三月,依此类推。
例子:
Input: N = 12
Output: 31 Days
Input: N = 2
Output: 28/29 Days
方法– 1:使用If Else:
- 以数字N表示输入月份。
- 如果N是这些值1、3、5、7、8、10、12之一,则打印“ 31天”。 。
- 如果N是这些值4、6、9、11中的一个,则打印“ 30天”。 。
- 如果N为2,则打印“ 28/29天”。 。
- 否则打印“ Invalid Month” 。
下面是上述方法的实现:
// C program for the above approach
#include
// Function to find the number of Days
// in month input by user
void printNumberOfDays(int N)
{
// Check for 31 Days
if (N == 1 || N == 3 || N == 5
|| N == 7 || N == 8 || N == 10
|| N == 12) {
printf("31 Days.");
}
// Check for 30 Days
else if (N == 4 || N == 6
|| N == 9 || N == 11) {
printf("30 Days.");
}
// Check for 28/29 Days
else if (N == 2) {
printf("28/29 Days.");
}
// Else Invalid Input
else {
printf("Invalid Month.");
}
}
// Driver Code
int main()
{
// Input Month
int N = 4;
// Function Call
printNumberOfDays(N);
return 0;
}
输出:
30 Days.
时间复杂度: O(1)
辅助空间: O(1)
方法– 2:使用Switch语句:
- 以数字N表示输入月份。
- 当N的值为1、3、5、7、8、10、12之一时,使用switch语句,然后输出“ 31 Days”。对应于开关盒。
- 如果N是这些值4、6、9、11中的一个,则打印“ 30天”。对应于开关盒。
- 如果N为2,则打印“ 28/29天”。对应于开关盒。
- 否则,切换案例的默认条件将显示“ Invalid Month” 。
下面是上述方法的实现:
// C program for the above approach
#include
// Function to find the number of Days
// in month input by user usingwwww
// switch statement
void printNumberOfDays(int N)
{
switch (N) {
// Cases for 31 Days
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
printf("31 Days.");
break;
// Cases for 30 Days
case 4:
case 6:
case 9:
case 11:
printf("30 Days.");
break;
// Case for 28/29 Days
case 2:
printf("28/29 Days.");
break;
default:
printf("Invalid Month.");
break;
}
}
// Driver Code
int main()
{
// Input Month
int N = 4;
// Function Call
printNumberOfDays(N);
return 0;
}
输出:
30 Days.
时间复杂度: O(1)
辅助空间: O(1)
方法– 3:使用数组:
- 将每个月对应的天数存储在数组中,如下所示:
arr[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
- 从上面的数组中将对应的日期打印到每个月。
下面是上述方法的实现:
// C program to find the number of days
// in a month using arrays
#include
// Driver Code
int main()
{
// Store the day in array arr[]
int arr[12] = { 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
// Input Month
int N = 4;
// Print the number of days in
// month 4
printf("%d Days.", arr[N - 1]);
return 0;
}
输出:
30 Days.
时间复杂度: O(1)
辅助空间: O(1)
方法– 4:使用指针:
- 将每个月对应的天数存储在数组中,如下所示:
arr[12] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }
- 使用以下指针从上述数组中将相应的日期打印到每个月:
printf(“%d Days.”, *(arr + (*N – 1)))
下面是上述方法的实现:
// C program to find the number of days
// in a month using pointers
#include
// Function to print number of Days
void printNumberOfDays(int* arr, int* N)
{
// Print the number of days for Nth
// month using *(arr+(*N - 1))
printf("%d Days.", *(arr + (*N - 1)));
}
// Driver Code
int main()
{
// Store the day in array arr[]
int arr[12] = { 31, 28, 31, 30, 31, 30,
31, 31, 30, 31, 30, 31 };
// Input Month
int N = 4;
// Print the number of days in
// month 4
printNumberOfDays(arr, &N);
return 0;
}
输出:
30 Days.
时间复杂度: O(1)
辅助空间: O(1)
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。