c - 尝试制作我的第一个 C 程序,将秒转换为周 + 天 + 小时 + 分钟 + 秒
问题描述
这是语言 C,正如标题所说,我正在努力做到这一点,以便用户输入几秒钟,然后转换为几周、几天、几小时、几分钟和几秒钟,如下所示:
输入:x 秒
输出:周 x,天 x,小时 59,分钟 59,秒 59 - 只是一个例子。
代码:
int main(void) {
int w, d, h, m, s;
printf("Please enter amount of seconds: " );
//%d er placeholder og &s er den enhed som benyttes - i dette tilfælde sekunder.
scanf("%d",&s);
//1 week = 7 days.
w = d / 7;
d = d % 7;
//1 day = 24 hours.
d = h / 24;
h = h % 24;
//1 hour = 60 minutes.
h = m / 60;
m = m % 60;
//1 minute = 60 seconds.
m = s / 60;
s = s % 60;
printf("\nWeeks: %d", h);
printf("\nDays: %d", h);
printf("\nHours: %d", h);
printf("\nMinutes: %d", h);
printf("\nSeconds: %d", h);
return 0;
}
我的问题:当我尝试编译它时,它只会在有关输入的所有字段中打印出 70019 - 我想这是最后使用的内存?所以很明显出了点问题,但我还不足以弄清楚:/
解决方案
所以很明显出了点问题,但我还不足以弄清楚:/
最大的错误是没有使用启用所有警告的良好编译器。
w = d / 7;
可以报告类似
> warning: 'd' is used uninitialized in this function [-Wuninitialized].
我的编译有 4 个警告。节省时间,提高生产力。启用所有警告。
然后重新排序计算并使用错误检查。
// scanf("%d",&s);
if (scanf("%d",&s) == 1) {
int m = s / 60;
s %= 60;
int h = m / 60;
m %= 60;
int d = h / 24;
h %= 24;
...
推荐阅读
- javascript - 如何将我的汉堡菜单移动到右上角?
- c++ - c++ 在函数中获取 const 的可变大小堆栈数组
- php - 除了选择特定的 id 之外,如何在 SQL 中选择随机行?
- vue.js - Vue:在几秒钟内获得页面装载时间并由此创建 hh:mm:ss?
- java - 使用 redisson 连接 redis 集群的问题
- android - Android Creative SnapKit:带有附件 URL 弹出窗口的照片打开两次
- python - 如何在没有 .value 的情况下访问 Enum 成员属性(并且不使用位置参数的元组)?
- c++ - 如何在最小堆中实现 downHeap() 函数?
- angular - Angular ngx引导模式延迟打开
- excel - 使用 SSIS 读取 Excel 时的日期格式