📜  C程序打印一个月中的天数

📅  最后修改于: 2021-05-28 04:11:22             🧑  作者: Mango

给定数字N ,任务是查找与每个月对应的天数,其中1是一月,2是二月,3是三月,依此类推。

例子:

方法– 1:使用If Else:

  1. 以数字N表示输入月份。
  2. 如果N是这些值1、3、5、7、8、10、12之一,则打印“ 31天”。
  3. 如果N是这些值4、6、9、11中的一个,则打印“ 30天”。
  4. 如果N为2,则打印“ 28/29天”。
  5. 否则打印“ 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语句:

  1. 以数字N表示输入月份。
  2. 当N的值为1、3、5、7、8、10、12之一时,使用switch语句,然后输出“ 31 Days”。对应于开关盒。
  3. 如果N是这些值4、6、9、11中的一个,则打印“ 30天”。对应于开关盒。
  4. 如果N为2,则打印“ 28/29天”。对应于开关盒。
  5. 否则,切换案例的默认条件将显示“ 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:使用数组:

  1. 将每个月对应的天数存储在数组中,如下所示:
  2. 从上面的数组中将对应的日期打印到每个月。

下面是上述方法的实现:

// 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:使用指针:

  1. 将每个月对应的天数存储在数组中,如下所示:
  2. 使用以下指针从上述数组中将相应的日期打印到每个月:

下面是上述方法的实现:

// 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基础课程》。