最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷效果

 更新時(shí)間:2019年11月25日 09:33:50   作者:初陽(yáng)-.-#  
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C語(yǔ)言實(shí)現(xiàn)萬(wàn)年歷的具體代碼,供大家參考,具體內(nèi)容如下

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define str "  SUN  MON TUE  WED  THU  FRI  SAT  "
 
void menu();     //操作菜單
int leap(int year);    //判斷某年是不是閏年
int days_month(int year, int month);    //返回某月的天數(shù)
int someday(int year, int month, int day);  //計(jì)算某天是星期幾
void search_month(int year, int month);    //輸出某月的日歷
void search_someday(int year, int month, int day);  //查詢某日是星期幾
 
int main()
{
 int i, year, month, day;
 int k1, k2, k3, k4;  //用于判斷輸入的數(shù)據(jù)和操作是否正確,1代表正確,0代表錯(cuò)誤
 int a = 1;
 menu();
 do
 {
 printf("請(qǐng)輸入你要進(jìn)行的操作(1-4):");
 scanf_s("%d", &i);
 getchar();
 switch (i)
 {
 case 1:
  printf("請(qǐng)輸入你要查詢的年份:"); scanf_s("%d", &year);
  for (a; a <= 12; a++)
  {
  printf("\n\n---------*******  %d *******------------\n", a);
  search_month(year, a);
  }
  printf("---------*********************------------\n\n\n");
  break;
 
 
 case 2:
  printf("請(qǐng)輸入您所要查詢的相關(guān)信息.\n");
  printf("年份:"); scanf_s("%d", &year);
  printf("月份:"); scanf_s("%d", &month);
  k1 = 1;
  while (k1)
  {
  if (month > 12 || month < 1)
  {
   printf("你輸入的月份有誤,請(qǐng)重新輸入!\n");
   printf("月份:");
   scanf_s("%d", &month);
   if (month < 1 || month>12)  k1 = 1;
  }
  else k1 = 0;
  }
  search_month(year, month);
  printf("---------*********************------------\n\n\n");
  break;
 
 
 case 3:
  printf("請(qǐng)輸入你要查詢的日期\n");
  printf("年份:"); scanf_s("%d", &year);
  printf("月份:"); scanf_s("%d", &month);
  k2 = 1;
  while (k2)
  {
  if (month > 12 || month < 1)
  {
   printf("你輸入的月份有誤,請(qǐng)重新輸入!\n");
   printf("月份:");
   scanf_s("%d", &month);
   if (month < 1 || month>12)  k2 = 1;
  }
  else k2 = 0;
  }
  //  printf("%d年%d月有%d天\n",year,month,days_month(year,month));   調(diào)試觀察輸入的日期是否有誤,可忽略
  printf("日期:"); scanf_s("%d", &day);
  k3 = 1;
  while (k3)
  {
  if (day > days_month(year, month) || day < 1)
  {
   printf("你輸入的日期有誤,請(qǐng)重新輸入!\n");
   printf("日期:");
   scanf_s("%d", &day);
   if (day > days_month(year, month) || day < 1)  k3 = 1;
  }
  else k3 = 0;
  }
  search_someday(year, month, day);
  printf("---------*********************------------\n\n\n"); break;
 
 
 case 4:exit(0);
  printf("---------*********************------------\n\n\n"); break;
 
 
 default:
  k4 = 1;
  while (k4)
  {
  printf("你輸入的數(shù)據(jù)有誤,請(qǐng)重新輸入你要進(jìn)行的操作(1-4):");
  scanf_s("%d", &i);
  if (i < 1 || i>4)  k4 = 1;
  else k4 = 0;
  }
  break;
 }
 } while (i > 0 && i < 5);
 return 0;
}
 
void menu()
{
 int i = 1;
 printf("\n\n\t\t----------------------------------------\n");
 printf("\t\t|--------------------------------------|\n");
 printf("\t\t|      %d. 輸出某年的日歷     |\n", i);
 printf("\t\t|      %d. 輸出某月的日歷     |\n", i + 1);
 printf("\t\t|      %d. 查詢某日是星期幾    |\n", i + 2);
 printf("\t\t|      %d. 退出系統(tǒng)        |\n", i + 3);
 printf("\t\t|--------------------------------------|\n");
 printf("\t\t----------------------------------------\n\n");
 
}
 
int leap(int year)
{
 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) return 1;
 else return 0;
}
 
int days_month(int year, int month)
{
 int days_month;
 switch (month)
 {
 case 1:
 case 3:
 case 5:
 case 7:
 case 8:
 case 10:
 case 12: days_month = 31; break;
 
 case 4:
 case 6:
 case 9:
 case 11:days_month = 30; break;
 
 case 2:
 if (leap(year) == 1)
 {
  days_month = 29; break;
 }
 else days_month = 28; break;
 }
 return days_month;
}
 
int someday(int year, int month, int day)
{
 //該函數(shù)運(yùn)用了特殊的計(jì)算公式,詳細(xì)可參見(jiàn) http://blog.163.com/hexin_mars_blog/blog/static/248215040201571351115699/
 int someday, m, n, i; //someday表示查詢的日子是星期幾
 m = year - year / 1000 * 1000;
 n = m - m / 100 * 100 - 1;      //用于獲得年份的后兩位數(shù)
 int days = 0;
 for (i = 1; i < month; i++) days = days + days_month(year, i);
 days = days + day;
 someday = (n + n / 4 - n / 100 + n / 400 + days) % 7;
 return someday;
}
 
void search_someday(int year, int month, int day)
{
 char weekname[20];
 switch (someday(year, month, day))
 {
 case 0:strcpy_s(weekname, "星期天"); break;
 case 1:strcpy_s(weekname, "星期一"); break;
 case 2:strcpy_s(weekname, "星期二"); break;
 case 3:strcpy_s(weekname, "星期三"); break;
 case 4:strcpy_s(weekname, "星期四"); break;
 case 5:strcpy_s(weekname, "星期五"); break;
 case 6:strcpy_s(weekname, "星期六"); break;
 }
 printf("你所要查詢的日期是%s\n", weekname);
}
 
void search_month(int year, int month)
{
 int i = 0, j, k = 0, m;   //j用于記錄某月的第一天是星期幾  m用于記錄某月的天數(shù) k用于換行提示
 char x[10] = "   ";
 m = days_month(year, month);
 j = someday(year, month, 1);
 
 //輸出某月的日歷
 printf("------------------------------------------\n");
 printf("%s\n", str);
 for (; i < j; i++)
 {
 printf("%s", x); k++;
 }
 for (i = 1; i <= m; i++)
 {
 k++;
 if (k % 7 == 0)
 {
  if (i < 10)
  {
  printf("  %d ", i);
  printf("\n");
  }
  else if (i >= 10)
  {
  printf("  %d ", i);
  printf("\n");
  }
 }
 else
 {
  if (i < 10)
  {
  printf("  %d ", i);
  }
  else if (i >= 10)
  {
  printf("  %d ", i);
  }
 }
 }
 printf("\n------------------------------------------\n");
}
 
void exit()
{
 exit(0);
} 

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 優(yōu)先隊(duì)列(priority_queue)的C語(yǔ)言實(shí)現(xiàn)代碼

    優(yōu)先隊(duì)列(priority_queue)的C語(yǔ)言實(shí)現(xiàn)代碼

    本文簡(jiǎn)要介紹一種基于數(shù)組二叉堆實(shí)現(xiàn)的優(yōu)先隊(duì)列,定義的數(shù)據(jù)結(jié)構(gòu)和實(shí)現(xiàn)的函數(shù)接口說(shuō)明如下
    2013-10-10
  • C/C++實(shí)操True and false詳解

    C/C++實(shí)操True and false詳解

    這篇文章主要給大家介紹了關(guān)于Python中常用的數(shù)據(jù)類型bool(布爾)類型的兩個(gè)值:True和False的相關(guān)資料,通過(guò)示例代碼給大家進(jìn)行了解惑,讓對(duì)這兩個(gè)值有所疑惑的朋友們能有起到一定的幫助,需要的朋友下面來(lái)一起看看吧。
    2021-09-09
  • OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo)

    OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo)

    這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)鼠標(biāo)在圖像上框選單目標(biāo)和多目標(biāo),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • C語(yǔ)言之初識(shí)指針

    C語(yǔ)言之初識(shí)指針

    在C語(yǔ)言中,指針是一種保存變量地址的變量。這篇文章介紹了初識(shí)C語(yǔ)言指針,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-12-12
  • C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)上篇

    C語(yǔ)言超詳細(xì)文件操作基礎(chǔ)上篇

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言的文件操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • 詳解C語(yǔ)言和Python中的線程混用

    詳解C語(yǔ)言和Python中的線程混用

    這篇文章主要介紹了C和Python中的線程混用的相關(guān)資料,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-07-07
  • C++使用extern實(shí)現(xiàn)源文件變量與類成員函數(shù)的巧妙共享

    C++使用extern實(shí)現(xiàn)源文件變量與類成員函數(shù)的巧妙共享

    C++中使用extern關(guān)鍵字可實(shí)現(xiàn)在源文件之間共享變量與類成員函數(shù),通過(guò)聲明變量或類在頭文件中,再在一個(gè)源文件中定義,其他源文件通過(guò)extern引用,促使模塊化、可維護(hù)的代碼組織,這篇文章主要介紹了C++用extern實(shí)現(xiàn)源文件變量與類成員函數(shù)的巧妙共享,需要的朋友可以參考下
    2024-03-03
  • C++中std::thread線程用法

    C++中std::thread線程用法

    本文主要介紹了C++中std::thread線程用法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • C語(yǔ)言實(shí)現(xiàn)直方圖均衡化

    C語(yǔ)言實(shí)現(xiàn)直方圖均衡化

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)直方圖均衡化,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • C++四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值

    C++四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值

    這篇文章主要介紹了C++的四種強(qiáng)制轉(zhuǎn)換原理與價(jià)值,文中介紹的非常詳細(xì),對(duì)學(xué)習(xí)C語(yǔ)言有一定的參考價(jià)值,感興趣的小伙伴可以參考一下
    2023-04-04

最新評(píng)論

旅游| 松原市| 汽车| 张掖市| 宾阳县| 茶陵县| 栾城县| 鄂托克前旗| 旺苍县| 桦南县| 淮北市| 彩票| 郁南县| 涪陵区| 云南省| 皮山县| 武夷山市| 上虞市| 甘南县| 乐都县| 廊坊市| 松原市| 屯留县| 芜湖市| 康乐县| 河曲县| 克东县| 微山县| 陆河县| 安岳县| 建湖县| 南靖县| 郯城县| 德江县| 阜阳市| 阆中市| 江北区| 德昌县| 子洲县| 乐业县| 喀喇|