ZxZ. 发表于 2023-7-22 19:42:17

题目:已知时、分、秒,以hh:mm:ss形式输出。

题目:已知时、分、秒,以hh:mm:ss形式输出。
例如:时、分、秒分别为5、6、25,输出为:05:06:25
注意:请勿改动程序中的其他内容。
在/**********Program**********/





    /**********End**********/中填写程序

#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>

voidhandel(char a[], int n)
{
    int i=0;
    for (;n>0;)
    {
      a = n % 60;
      n = n/60;
    }
}
int main()
{
    int h, m, s, n, t, j;
    char a={0};
    h=5,m=6,s=25;
    t = s + m*60 + h*3600;
    handel(a,t);
    n=0;
    /**********Program**********/





    /**********End**********/
    return 0;
}

isdkz 发表于 2023-7-22 19:45:36

首先,我们要注意到问题实际上是要求我们以hh:mm:ss的格式输出已知的小时、分钟和秒。这里的关键是如何确保在小时、分钟和秒的数值小于10时,在前面添加一个'0'。

在你的main函数中,你已经将h ,m和s分别转换为了总秒数t ,然后将总秒数传递给handel函数。然而,将所有的秒数转换为一个一维数组可能并不是一个有效的解决方案,因为我们需要知道每个时间单位的确切值以便进行格式化输出。对于此问题,我建议直接在main函数中处理这个问题。

下面是对应的修改代码:

#include<stdio.h>

int main()
{
    int h, m, s;
    h=5, m=6, s=25;

    /**********Program**********/

    printf("%02d:%02d:%02d\n", h, m, s);

    /**********End**********/
    return 0;
}

解释:这个问题实际上是一个格式化输出的问题。在这里,我使用了printf函数的格式化功能。 %02d代表输出的整数宽度为2,如果整数的位数不够2位,则在其左侧补零。因此,如果小时、分钟或秒的数值小于10,它们就会被输出为两位数,左侧补零。

例如,当小时、分钟和秒分别为5、6、25时, printf("%02d:%02d:%02d\n", h, m, s);将输出05:06:25 ,符合我们的要求。

Mike_python小 发表于 2023-7-22 19:47:23

在指定的位置填写以下程序:


for (j=0;j<i;j++)
{
    if (a>=10)
      printf("%d",a);
    else
      printf("0%d",a);
    if (j<i-1)
      printf(":");
}


完成后的完整程序如下所示:


#include<stdio.h>
#include<string.h>
#include<math.h>
#include<ctype.h>
#include<stdlib.h>

void handel(char a[], int n)
{
    int i=0;
    for (;n>0;)
    {
      a = n % 60;
      n = n/60;
    }
}

int main()
{
    int h, m, s, n, t, j;
    char a={0};
    h=5,m=6,s=25;
    t = s + m*60 + h*3600;
    handel(a,t);
    n=0;

    // 输出结果
    for (j=0;j<i;j++)
    {
      if (a>=10)
            printf("%d",a);
      else
            printf("0%d",a);
      if (j<i-1)
            printf(":");
    }

    return 0;
}


程序将根据给定的时、分、秒进行计算,并以 hh:mm:ss 的格式输出。例如,对于时、分、秒分别为 5、6、25,输出结果为:05:06:25。请注意,程序中的其他部分不应进行修改。

球一个最佳答案谢谢啦!这对我非常重要!{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: 题目:已知时、分、秒,以hh:mm:ss形式输出。