?? test3.cpp
字號:
// test3.cpp : Defines the entry point for the console application.
//
/************************************************************************/
/* 描 述:2009-1-15作業 */
/* 日 期:2009-1-15 */
/* 所有權:NeuSoft */
/* 作 者:王立力 */
/************************************************************************/
#include "stdafx.h"
void test1();//作業1:輸入一個數據并打印從1到該數據
void test2();//作業2:輸入年月日輸出該日期在年中的第幾天
void test3();//作業3:打印2009年的日歷
void Print(int n, int *daylast); /*打印n天的日歷,n表示某個月份的天數,daylast表示第多少天*/
int isrunyuan(int year); /*該函數用于判斷是否是閏年*/
int main(int argc, char* argv[])
{
printf("\n作業1:輸入一個數據并打印從1到該數據:\n");
test1();
printf("\n作業2:輸入年月日輸出該日期在年中的第幾天: \n");
test2();
printf("\n打印2009年的日歷: \n");
test3();
return 0;
}
void test1()//作業1:輸入一個數據并打印從1到該數據
{
int n = 0;
printf("請輸入一個數據:");
scanf("%d", &n);//輸入循環數據
for (int i=1; i <= n; i++)
{
printf("%d\n", i);
}
}
int isrunyuan(int year)
{
if (year % 100 == 0) /*能被100整除*/
{
if (year % 400 == 0) /*能被400整除*/
{
return 1;
}
else /*不能被400整除*/
{
return 0;
}
}
else
{
if (year % 4 == 0) /*能被4整除*/
{
return 1;
}
else /*不能被4整除*/
{
return 0;
}
}
}
void test2()//作業2:輸入年月日輸出該日期在年中的第幾天
{
int y = 0;
int m = 0;
int d = 0;
int daylast = 0;
printf("請輸入一個日期格式為(2009-1-15):");
scanf("%d-%d-%d", &y, &m, &d);//要求必須按指定格式輸入
for (int i=1; i <= m; i++)//一個月份一個月份的累加
{
switch(i)//不同的月份添加不同的天數
{
case 1:
daylast += d;
break;
case 2:
daylast += 31;
break;
case 3:
if (isrunyuan(y) == 1)//判斷是閏年的話天數為29天,否則為28天
daylast += 29;
else
daylast += 28;
break;
case 4:
daylast += 31;
break;
case 5:
daylast += 30;
break;
case 6:
daylast += 31;
break;
case 7:
daylast += 30;
break;
case 8:
daylast += 31;
break;
case 9:
daylast += 31;
break;
case 10:
daylast += 30;
break;
case 11:
daylast += 31;
break;
case 12:
daylast += 30;
break;
default:
printf("輸入月份有誤!");
exit(0);
}
}
printf("\n%d-%d-%d是該年中的第%d天\n", y, m, d, daylast);
}
void Print(int n, int *daylast)/*打印n天的日歷,n表示某個月份的天數,daylast表示第多少天并累加*/
{
for (int j=1; j <= n; j++)
{
if ((*daylast)%7 == 0)//七天一換行
printf("\n");
printf("\t%d", j);//打印日
(*daylast) ++;//第幾天累加
}
}
void test3()//作業3:打印2009年的日歷
{
int daylast = 4;
int j = 0;
int k = 0;
for (int i=1; i <= 12; i++)//一個月份一個月份的累加
{
printf("\n\t%d月份:\n", i);
printf("\t日\t一\t二\t三\t四\t五\t六\n");
for (j=0; j<daylast%7; j++)//顯示每月前面的tab符
{
printf("\t");
}
switch(i)//不同的月份添加不同的天數
{
case 1:
Print(31, &daylast);
break;
case 2:
Print(28, &daylast);
break;
case 3:
Print(31, &daylast);
break;
case 4:
Print(30, &daylast);
break;
case 5:
Print(31, &daylast);
break;
case 6:
Print(30, &daylast);
break;
case 7:
Print(31, &daylast);
break;
case 8:
Print(31, &daylast);
break;
case 9:
Print(30, &daylast);
break;
case 10:
Print(31, &daylast);
break;
case 11:
Print(30, &daylast);
break;
case 12:
Print(31, &daylast);
break;
}
printf("\n");
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -