有一道C语言的问题想请教一下大家,谢谢

来源:百度知道 编辑:UC知道 时间:2024/05/24 05:15:41
程序如下:
struct time
{
int minute;
int second;
};
main()
{
int i,n;
struct time sum;
scanf("%d\n",&n);
for(i=0;i<n;i++);
{
sum.minute=11;
sum.second=0;
printf("11:00\n");
for(;;)
{
value(&sum);
if((sum.minute==0)&&(sum.second==0))
{
printf("time is over");
delay();
break;
}
if((sum.minute<10)&&(sum.second<10))
printf("0%d:0%d\n",sum.minute,sum.second);
if((sum.minute>=10)&&(sum.second<10))
printf("%d:0%d\n",sum.minute,sum.second);
if((sum.minute>=10)&&(sum.second>=10))
printf("%d:%d\n",sum.minute,sum.second);
if((sum.minute<10)&&(sum.second>=10))
printf("0%d:%d\n",sum.minute,sum.second);
}
}
}
int value(s

1.scanf("%d\n",&n)改成,scanf("%d",&n)
2. value函数应该改成
int value(struct time *t)
{
if((t->minute!=0)&&(t->second==0))
{
t->minute--;
t->second=59;
delay();
}
else
if((t->minute!=0)&&(t->second!=0))
{
t->second--;
delay();
}
else
if((t->minute==0)&&(t->second!=0))
{
t->second--;
delay();
}
}

原因是几个if是相互独立的
3. for (i=0;i<n;i++);
后面多了一个;
循环体就是一个分号(空语句)
所以相当于 执行n次空循环后
再执行后面的花括号里的计时语句
循环对计时的次数不起作用

#include "stdio.h"
#include "conio.h"

struct time
{
int minute;
int second;
};
main()
{
int i,n;
struct time sum;
printf("in put:");
scanf("%d",&n);//根据控制格式输入
for(i=0;i<n;i++)//改正的
{
sum.minute=11;
sum.second=0;
printf("11