• 比较两人生日相差多少天


    算法:从键盘输入出生日期,取较小者的年份为基准,先计算其中一个生日距基准年份的第一天相差天数,再计算第二个,再将两个结果做差即可

    如输入2015 2 14

      2013 4 28

    则基准为2013 1 1

     1 // ConsoleApplication1.cpp : 定义控制台应用程序的入口点。
     2 //
     3 
     4 #include "stdafx.h"
     5 #include<stdio.h>
     6 
     7 int time(int a, int b, int c, int year); //申明函数time
     8 
     9 struct student{
    10     int year;
    11     int month;
    12     int day;
    13 }c[2];    //定义两位学生结构体和变量
    14 
    15 int main()
    16 {
    17     int i, sum1 = 0, sum2 = 0, sum;
    18     for (i = 0; i<2; i++)
    19     {
    20         printf("请输入第%d位同学生日:", i + 1);
    21         scanf_s("%d %d %d", &c[i].year, &c[i].month, &c[i].day);
    22     }    //输入两位同学生日信息 
    23     if (c[0].year >= c[1].year)
    24     {
    25         sum1 = time(c[0].year, c[0].month, c[0].day, c[1].year);
    26         sum2 = time(c[1].year, c[1].month, c[1].day, c[1].year);
    27     }
    28     else
    29     {
    30         sum1 = time(c[0].year, c[0].month, c[0].day, c[0].year);
    31         sum2 = time(c[1].year, c[1].month, c[1].day, c[0].year);
    32     }    //用小一点的同学出生年份做基准 
    33     sum = (sum1 >= sum2) ? (sum1 - sum2) : (sum2 - sum1);    //输出正的天数 
    34     printf("两人相差%d天
    ", sum);
    35 }
    36 
    37 int time(int a, int b, int c, int year)    //定义函数time 
    38 {
    39     int num = 0, i, sum = c;
    40     for (i = 1; i<b; i++)
    41     {
    42         switch (i)
    43         {
    44         case 1:
    45         case 3:
    46         case 5:
    47         case 7:
    48         case 8:
    49         case 10:
    50         case 12:num = 31; break;
    51         case 4:
    52         case 6:
    53         case 9:
    54         case 11:num = 30; break;
    55         case 2:if (a % 4 == 0 && a % 100 != 0 || a % 400 == 0)
    56             num = 29;
    57                else
    58                    num = 28;
    59             break;
    60         default:num = 0;
    61         }
    62         sum += num;    //统计该同学生日和他出生那年第一天差 
    63     }
    64     if (a == year)
    65         return sum;
    66     else if (a>year)
    67     {
    68         for (i = year; i<a; i++)    //循环是用来大一点同学大出年份的总天数 
    69         {
    70             if (i % 4 == 0 && i % 100 != 0 || i % 400 == 0)
    71                 sum += 366;
    72             else
    73                 sum += 365;
    74         }    //求出总天数 
    75         return sum;
    76     }
    77 }

    结果

  • 相关阅读:
    兼容IE的滚动条自定义样式
    vue从入门到开发--4--处理http请求
    vue从入门到开发--3-基础语法
    Oracle 扩容表空间
    Oracle 整库备份还原
    Oracle 相关命令
    更改mysql数据库根目录
    关于文件系统
    挂载iscsi存储
    挂载nfs存储
  • 原文地址:https://www.cnblogs.com/cdp1591652208/p/6202810.html
Copyright © 2020-2023  润新知