day01 code

来源:互联网 发布:bilibili下载mac 编辑:程序博客网 时间:2024/05/16 13:47

 01maxof3num.cpp

/*
* 【基本题】有三个整数a、b、c,由键盘输入,输出其最大的数。
*/

#include <stdio.h>

/*
* 返回 3个整数的 最大值
*/
int max(int a, int b, int c)
{
 int temp = 0;
 a > b ? temp = a : temp = b;
 c > temp ? temp = c : temp = temp;
 return temp;
}

int main()
{
 int a;
 int b;
 int c;
 printf("请输入3个整数(如:3 14 36) : \n");
 scanf("%d%d%d", &a, &b, &c);
 printf("最大的数为:%d\n", max(a, b, c));
 getchar();
 getchar();
 return 0;
}

 

 

02outputEverNum.cpp

 

/*
* 【基本题】给一个不多于5位的正整数,要求如下:
*   1、求出它是几位数
*   2、分别输出每一位数字
*   3、按逆序输出各位数字,例如原数为321,应输出123
*
*/

#include <stdio.h>

//求出它是几位数
int digNum(int dig)
{

 int i = 0;
 while(dig)
 {
  dig /= 10;
  i++;
 }
 return i;

}

//递归输出每一位数字
void showNum(int num)
{
 if(num < 10)
 {
   printf("%d ", num);       
 }
 else
 {
  showNum(num/10);
  showNum(num%10);
 }
}

//按逆序输出各位数字,例如原数为321,应输出123
void showRevNum(int num)
{
 if(num < 10)
 {
   printf("%d ", num);
 }
 else
 {
  
  showRevNum(num%10);
  showRevNum(num/10);
 }
}
int main()
{
 int flag = 1;
 int num;
 while(flag)
 {
        printf("请输入一个不多于5位的正整数 : \n");
        scanf("%d", &num);
  if(num / 100000 > 0 || num <= 0) printf("输入有误\n");
  else flag = 0;
 }

    printf("%d 位\n", digNum(num));
    printf("正序输出\n");
 showNum(num);
 
 printf("\n逆序输出\n");
 showRevNum(num);
 getchar();
 getchar();
 return 0;
}

 

05showNextTime.cpp

 

/*
*   【选做题】输入一个时间(年、月、日、时、分、秒),判断时间是否合法,输出下一秒的时间
*   例如:输入2000-2-29 23:59:59
*  输出2000-3-1  0:0:0
*
*/
#include <stdio.h>

struct Date
{
    int year;
    int month;
    int day;
    int hour;
    int minute;
    int second;
};

//判断是否是闰年
bool isLeapYear(int year)
{
    return ((year%4==0 && year%100!=0) || (year%400==0));
}
//判断时间是否合法
bool isLegalDate(Date date)
{
   
    int Month_Day[2][12] = {
        {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
        {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
       
   
    if(date.year <= 0)  return false;
    if(date.month <= 0 || date.month > 12) return false;
   
    if(date.day <= 0 || date.day > Month_Day[isLeapYear(date.year)][date.month-1]) return false;
   
    if(date.hour < 0 || date.hour > 23) return false;
    if(date.minute < 0 || date.minute >= 60) return false;
    if(date.second < 0 || date.second >= 60) return false;
   
    return true;
   
       
}

//计算下一秒时间
Date nextSec(Date date)
{
    int Month_Day[2][12] = {
        {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
        {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};

    int c1 = 0; //下面的进位
    int c2 = 0; // 向上的进位
   
    date.second ++;
    //秒
    c1 =  date.second / 60;
    date.second %= 60;
    //分
    date.minute += c1;
    c1 = date.minute / 60;
    date.minute %= 60;
    //时
    date.hour += c1;
    c1 = date.hour / 24;
    date.hour %= 24;
    //日
    date.day += c1;
    c1 = date.day / Month_Day[isLeapYear(date.year)][date.month-1];
    date.day %= Month_Day[isLeapYear(date.year)][date.month-1];
    // 月
    date.month += c1;
    c1 = date.month / 12;
    date.month %= 12;
    // 年
    date.year += c1;
   
    return date;

}

int main()
{
    Date d1;
    scanf("%d-%d-%d %d:%d:%d", &d1.year, &d1.month, &d1.day, &d1.hour, &d1.minute, &d1.second);
    if(!isLegalDate(d1))
    {
        printf("不合法\n");   
        getchar();
        getchar();
        return 0;
    }
   
    Date nextDate = nextSec(d1);
   
    printf("%d-%d-%d %d:%d:%d\n", nextDate.year, nextDate.month, nextDate.day, nextDate.hour, nextDate.minute, nextDate.second);
   
   
    getchar();
    getchar();
    return 0;
}

 

06threeFishTwoWeb.cpp

 

/*
*   【选做题】中国有句俗语叫“三天打鱼两天晒网”。
*               某人从1990年1月1日起开始“三天打鱼两天晒网”,
*               问这个人在以后的某一天中是“打鱼”还是“晒网”?
*/
#include <stdio.h>

//判断是否是闰年
bool isLeapYear(int year)
{
    return ((year%4==0 && year%100!=0) || (year%400==0));
}

int daysOfDate(int year, int month, int day)
{
    int Month_Day[2][12] = {
        {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
        {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
    int days = 0;
    for(int i=1; i<year; i++)
    {
        days = days + 365 + isLeapYear(i);
    }
    for(int i=1; i<month; i++)
    {
        days = days + Month_Day[isLeapYear(year)][month-1];
    }
    days += day;
    return days;
}
int main()
{
   
    int year;
    int month;
    int day;
    scanf("%d-%d-%d", &year, &month, &day);
   
    int cha=daysOfDate(year,month,day) - daysOfDate(1990,1,1);
    int yu = cha % 5;
    if(yu >=0 && yu <= 2)
    {
        printf("打渔");
    }
    else
    {
        printf("晒网");
    }
   
 getchar();
 getchar();
 return 0;
}

 

原创粉丝点击