如题,输入秒钟数,输出转换后的时:分:秒,编写好之后语法没错误,但是时分不能转换,求解。
# include <stdio.h>
#define matrixing 60//将换算率定为60
int sm_matrixing(int seconds_fun);//声明“分秒转换函数”
int mh_matrixing(int minutes_fun);//声明“时分转换函数”
int main(void)
{
int seconds = 0,minutes = 0,hours = 0;//定义“秒钟”,“分钟”,“时钟”
printf("请输入您要转换的秒钟数:\n");
scanf("%d",&seconds);
do//用do while,先执行一遍,在根据条件循环。因为秒钟有可能小于60
{
if(seconds >= matrixing)//秒钟大于60,执行转换
{
minutes = sm_matrixing(seconds);
seconds -= minutes * 60;//总秒钟数减去60*分钟数
}
if(minutes >= matrixing)//分钟大于60,执行转换
{
hours = mh_matrixing(minutes);
minutes -= hours * 60;//换算完的分钟数减去时钟数*60
}
printf("%02d:%02d:%02d",hours,minutes,seconds);
scanf("%d",&seconds);
}while(seconds >= matrixing);
return 0;
}
int sm_matrixing(int seconds_fun)//定义“分秒转换函数”
{
int minutes_fun = 0;//定义分钟
while(seconds_fun >= matrixing)//秒钟大于60,持续循环转换分秒
{
minutes_fun ++;//分钟+1
seconds_fun -= 60;//秒钟-60
}
return (minutes_fun);//返回计算后的分钟
}
int mh_matrixing(int minutes_fun)//定义“时分转换函数”
{
int hours_fun = 0;//定义时钟
while(hours_fun >= matrixing)//分钟大于60,循环转换时分
{
hours_fun ++;
minutes_fun -= 60;
}
return (hours_fun);//返回时钟
}
你写得太繁杂了
int m,s,h=0;只是想练习一下函数,想知道怎么错了
追答int mh_matrixing(int minutes_fun)//定义“时分转换函数”
{
int hours_fun = 0;//定义时钟
while(hours_fun >= matrixing)//分钟大于60,循环转换时分
{
hours_fun ++;
minutes_fun -= 60;
}
return (hours_fun);//返回时钟
}
这个函数有问题
函数进来后hours_fun=0; 再判断它>=60才循环,但是它不可以成立
应改为while(minutes_fun>=matrixing)