#include<stdio.h> int HmsToS(int h, int m, int s) { int t; t=60*60*h+60*m+s; return t; } void PrintTime(int s) { int h=0,m=0; while(s>=60) { if(s>=3600) { h++; s=s-3600; } if(s<3600 && s>=60) { m++; s=s-60; } } printf("%02d:%02d:%02d\n",h,m,s); } int main() { int h,m,s,t,h1,m1,s1; while(scanf("%d:%d:%d\n",&h,&m,&s),h!=EOF); { scanf("%d:%d:%d",&h1,&m1,&s1); t=HmsToS(h1,m1,s1)-HmsToS(h,m,s); PrintTime(t); } return 0; }为什么不对
时间: 2024-01-24 15:16:58 浏览: 22
这个程序有一个小错误:
```
while(scanf("%d:%d:%d\n",&h,&m,&s),h!=EOF);
```
应该改为:
```
while(scanf("%d:%d:%d",&h,&m,&s) != EOF)
```
因为 `scanf` 函数返回的是读入成功的参数个数,而不是 `EOF`。所以在判断是否读到文件结尾时,应该判断 `scanf` 的返回值是否等于 3(因为要读入三个整数)。另外注意去掉多余的分号。
相关问题
#include <stdio.h> #include <math.h> int main() { int a
#include <stdio.h> 是一个C语言的头文件,它包含了一些输入输出函数的声明,比如printf和scanf等。而#include <math.h> 是一个数学库的头文件,它包含了一些数学函数的声明,比如sqrt和sin等。
在你给出的代码中,int main() 是程序的入口函数,它表示程序从这里开始执行。在main函数中,定义了一个整型变量a,但是没有给它赋初值。
如果你想要使用printf函数来输出一些信息,可以在main函数中添加代码,比如:
int main()
{
int a = 10;
printf("a的值是:%d\n", a);
return 0;
}
这样就可以输出a的值为10。你可以根据需要修改a的值和输出的格式。
#include <stdio.h> int main() { double t
#include <stdio.h> 是C语言中的一个预处理指令,它告诉编译器在编译过程中要包含stdio.h头文件。stdio.h是标准输入输出库的头文件,其中包含了一些常用的输入输出函数的声明。
int main() 是C语言程序的入口函数,程序从这里开始执行。在这个函数中,你可以编写你的程序逻辑。
double t 是一个变量的声明,它的类型是double,表示它可以存储双精度浮点数。这个变量的名字是t。