我让这个程序以小时,分钟和秒打印时间
#include<stdio.h>
int main()
{
float a, b,x,mina,minb,hrsa,hrsb;
float seca,secb;
FILE *fp = fopen("/proc/uptime", "r");
fscanf(fp, "%f %f", &a, &b);
seca=(a)%60;
mina=seca/60;
hrsa=mina/60;
secb=(b)%60;
minb=secb/60;
hrsb=minb/60;
printf("Uptime=%f hrs %f min %f sec",hrsa,mina,seca);
printf("Idealtime =%f hrs %f min %f sec",hrsb,minb,secb);
return 0;
}
这里我在第12行和第16行收到错误“二进制无效操作数”。
答案 0 :(得分:2)
你不能在浮点数上做mod(%
)。试试((long)a)%60;
甚至(long long)
,但1&lt; <31秒提供的68年应该足够了....
此外,您需要在几分钟内进行另一次修改操作,否则3601秒将变为“1小时60分钟,1秒”,而不是“1小时0分钟,1秒”。
答案 1 :(得分:2)
答案 2 :(得分:0)
a
和b
为float
,它们应为int
答案 3 :(得分:0)
除非您必须手动执行此操作,否则请查看标准时间函数。
man time.h
对于你的代码(正如其他人所说)你不能真正对浮点数进行整数除法和整数mod运算(没有任何意义)。