C语言问题,各位高手看哪错了?

来源:百度知道 编辑:UC知道 时间:2024/05/06 00:15:14
#include <stdio.h>
#include <stdlib.h>
struct
{
long hour;
int minite;
float second;
} time;
void subs(time);
int main()
{
int i;
time t[3]={{6,24,45.58f},{3,40,17.43f}};
subs(t);
for(i=0;i<3;i++)
printf("t[%d]=%02d:%02d:%f05.2\n",i,t[i].hour,t[i].minite,t[i].second);
system("pause");
return 0;
}
void subs(time [])
{
t[2].second=t[1].second+t[1].second;
int count1,count2;
while(t[2].second>=60)
{
t[2].second-=60;
count1++;
}
t[2].minite=t[0].minite+t[1].minite+count1;
while(t[2].minite>=60)
{
t[2].minite-=60;
count2++;
}
t[2].hour=t[0].hour+t[1].hour;
return ;
}

问题比较多,我直接修改了。你看下吧。
主要是结构的定义方面。
还有,初始化的时候,t[2]初始化为了0.
但是,由于void subs(time *t)的定义中,t[2].minite=t[0].minite+t[1].minite+count1;这句
中count1没有初始化,导致分钟数不大于60的时候,t[2]的分钟数随机。
count2同理,现均已初始化为0.

#include <stdio.h>
#include <stdlib.h>

struct time
{
long hour;
int minite;
float second;
};

void subs(time *t);

int main()
{
int i;
time t[3]={{6,24,45.58f},{3,40,17.43f}};
subs(t);

for(i=0;i<3;i++)
printf("t[%d]=%02d:%02d:%f05.2\n",i,t[i].hour,t[i].minite,t[i].second);

system("pause");

return 0;
}

void subs(time *t)
{
t[2].second=t[1].second+t[1].second;
int count1=0,count2=0;
while(t[2].second>=60)
{
t[2].second-=60;
count1++;
}
t[2].minite=t[0].minite+t[1].minite+count1;

while(t[2].minite>=60)
{