HIT C语言程序设计精髓编程题 计算时间差V1.0

计算时间差V1.0
题目内容:

编程从键盘任意输入两个时间(例如4时55分和1时25分),计算并输出这两个时间之间的间隔。要求不输出时间差的负号。

程序的运行结果示例1:

Input time one(hour, minute):4,55↙

Input time two(hour, minute):1,25↙

3 hour 30 minute

程序的运行结果示例2:

Input time one(hour, minute):1,56↙

Input time two(hour, minute):3,25↙

1 hour 29 minute

输入提示信息:
“Input time one(hour, minute):”
“Input time two(hour, minute):”

输入格式:"%d,%d"

输出格式:"%d hour %d minute\n"

为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。

时间限制:500ms内存限制:32000kb

代码如下:

/*计算时间差V1.0*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
    int hour,minute;
    int hour1,minute1;
    int hour2,minute2;
    printf("Input time one(hour, minute):");
    scanf("%d,%d",&hour1,&minute1);
    printf( "Input time two(hour, minute):");
    scanf("%d,%d",&hour2,&minute2);
    minute1=hour1*60+minute1;
    minute2=hour2*60+minute2;
    minute=fabs(minute1-minute2);
    hour=minute/60;
    minute=minute-hour*60;

    printf("%d hour %d minute\n",hour,minute);
    return 0;
}

这道题解决的主要思想是先将输入的两个时间统一化成分(minute),再计算两个时间的差(这里得到的差不能为负数,调用fabs();),然后将得到的差再转换成 时+分 ,这里要利用好表达式计算过程得到的数据类型
主要体现在

hour=minute/60;

这里计算后得到仍然是整型数据

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很抱歉,我无法提供您所需的pdf文件。但是,我可以为您提供一个简单的21点扑克牌游戏的C语言程序示例,您可以参考它来编写自己的程序。 ```c #include <stdio.h> #include <stdlib.h> #include <time.h> int main() { int player, dealer, player_sum, dealer_sum; char choice; srand((unsigned)time(NULL)); // 初始化随机数种子 printf("Welcome to 21-point blackjack game!\n\n"); // 玩家和庄家各发两张牌 player = rand() % 10 + 1; dealer = rand() % 10 + 1; printf("Your first card is %d.\n", player); printf("Dealer's first card is %d.\n", dealer); player += rand() % 10 + 1; dealer += rand() % 10 + 1; printf("Your second card is %d.\n", player); printf("Dealer's second card is hidden.\n"); // 计算点数 player_sum = player; dealer_sum = dealer; // 玩家回合 do { printf("\nDo you want to hit (h) or stand (s)? "); scanf(" %c", &choice); if (choice == 'h') { player += rand() % 10 + 1; player_sum += player; printf("Your new card is %d.\n", player); if (player_sum > 21) { printf("Busted! You lose.\n"); return 0; } } } while (choice == 'h'); // 庄家回合 printf("\nDealer's turn.\n"); printf("Dealer's second card is %d.\n", dealer); while (dealer_sum < 17) { dealer += rand() % 10 + 1; dealer_sum += dealer; printf("Dealer's new card is %d.\n", dealer); if (dealer_sum > 21) { printf("Dealer busted! You win.\n"); return 0; } } // 比较点数 printf("\nYour total is %d.\n", player_sum); printf("Dealer's total is %d.\n", dealer_sum); if (player_sum > dealer_sum) { printf("You win!\n"); } else if (player_sum < dealer_sum) { printf("You lose.\n"); } else { printf("It's a tie.\n"); } return 0; } ``` 这个程序使用随机数生成玩家和庄家的牌,在玩家回合中,玩家可以选择是否要继续要牌,直到选择停牌或者点数超过21点为止。在庄家回合中,庄家会一直要牌直到点数大于等于17点为止。最后比较点数大小,判断胜负。 请注意,这只是一个简单的示例程序,您可以根据自己的需求进行修改和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值