我编写了这段代码,将“环球时报”集转换为“本地时间”。
#include<stdio.h>
#include<stdlib.h>
#define T_SIZE 2
void Time_change(int time,
int time_diff,
int *new_timep,
int *day_nump)
{
*day_nump=0;
*new_timep=time+(time_diff*100);
if(*new_timep<0)
{
*new_timep +=2400;
*day_nump -=1;
}
if(*new_timep>2400)
{
*new_timep -=2400;
*day_nump +=1;
}
}
int main(void)
{
int utc[T_SIZE],
time_diff,
local[T_SIZE],
day[T_SIZE],
i;
for(i=0;i<T_SIZE;i++)
{
printf("Enter Universal Time #%d\n",i);
scanf("%d",&utc[i]);
printf("Time difference=");
scanf("%d",&time_diff);
}
printf("\n");
for(i=0;i<T_SIZE;++i)
{
Time_change(utc[i],time_diff,&local[i],&day[i]);
printf("Local Time = %d:%d day# %d\n",(local[i]/100)%100,(local[i])%100,day[i]);
}
system("pause");
}
这个结果出现了
但是当我评论这些行时
//*day_nump -=1;
//*day_nump +=1;
结果是在小时部分。
有什么问题?
答案 0 :(得分:0)
第二次输入time_diff
时,它将覆盖第一次,然后第二次将使用两次。
如果您将呼叫转移到Time_change
到第一个循环,则每次都会使用正确的值time_diff
。