一个关于,c语言小程序倒计时演示程序中的一个萌新觉得不合常理的吃多了的无聊问题,基本流程是:一直循环 {》打印》暂停》清屏}
合理的程序例子:
#include<stdio.h>
#include<conio.h>
int main()
{
for (int i=100;i>= 0;i--)
{
printf("%d秒 \n",i);
//有每次循环换行
sleep(1);
clrscr();
}
printf("100秒倒计时完毕 任意结束可\n");
return 0;
}
不合理我疑问→_→的程序例子:
#include<stdio.h>
#include<conio.h>
int main()
{
for (int i=5;i>= 0;i--)
{
printf("%d秒 ",i);
//每次循环没有换行
sleep(1);
//clrscr();
/*理论上 ,结束循环后,会一次性打印循环结果, 因为有清 屏所以你看不见结果了*/
}
printf("5秒倒计时完毕 任意结束可\n");
return 0;
}
两个差不多相同的代码 ?但是区别于:
合理代码在先打印倒计时的i值,因有换行操作,并又暂停现清屏,正常及正确显示倒计时!
不合理代码在打印循环倒计时i值 ,虽然没有换行操作,但是结果是出乎意料的黑黑的等待100秒过后,才会一次性的并列打印出结果。就像一次性,100.99.98.97.....这样,(如果有清屏 则看不见结果)
,这不合理!但不应该是 第一次打印 数值i后暂停1秒,清屏后而直接再打印第二次i循环的数值的吗?怎么会因为没有换行操作而。。。。。。
合理的程序例子:
#include<stdio.h>
#include<conio.h>
int main()
{
for (int i=100;i>= 0;i--)
{
printf("%d秒 \n",i);
//有每次循环换行
sleep(1);
clrscr();
}
printf("100秒倒计时完毕 任意结束可\n");
return 0;
}
不合理我疑问→_→的程序例子:
#include<stdio.h>
#include<conio.h>
int main()
{
for (int i=5;i>= 0;i--)
{
printf("%d秒 ",i);
//每次循环没有换行
sleep(1);
//clrscr();
/*理论上 ,结束循环后,会一次性打印循环结果, 因为有清 屏所以你看不见结果了*/
}
printf("5秒倒计时完毕 任意结束可\n");
return 0;
}
两个差不多相同的代码 ?但是区别于:
合理代码在先打印倒计时的i值,因有换行操作,并又暂停现清屏,正常及正确显示倒计时!
不合理代码在打印循环倒计时i值 ,虽然没有换行操作,但是结果是出乎意料的黑黑的等待100秒过后,才会一次性的并列打印出结果。就像一次性,100.99.98.97.....这样,(如果有清屏 则看不见结果)
,这不合理!但不应该是 第一次打印 数值i后暂停1秒,清屏后而直接再打印第二次i循环的数值的吗?怎么会因为没有换行操作而。。。。。。