我正在学习C,我写了一个C程序,要求用户输入一个起始编号和结束编号,并打印出从起始编号到结束编号的编号。例如,如果用户输入5作为起始编号,10作为结束编号,则打印输出5 6 7 8 9 10。这是代码: -
#include <stdio.h>
#include <stdlib.h>
int main()
{
int start ;
int end ;
int counter ;
// Asking the starting number
printf("Enter the starting number : ") ;
scanf("%d" , &start) ;
// Asking the last number
printf("Enter the last number : ") ;
scanf("%d" , &end) ;
for (counter = start ; counter <= end ; counter++)
{
printf("%d\n" , counter) ;
}
return 0;
}
上面的代码适用于小间隙数(如5到10,1000到1025),但每当我输入100到500之间的大间隙数时,它会打印出从205到500的数字,即使我滚动我找不到从100到204的数字。我正在使用Code::Blocks (version 13.12)。任何人都能弄清楚这段代码有什么问题吗?谢谢:)
答案 0 :(得分:4)
命令行显示的历史记录有限。您正在打印大量数字旧行被删除。
使用fopen()和fprintf()将数字打印到文件中,以便全部检查。
答案 1 :(得分:3)
正如大家所提到的,您的命令行历史记录已超出其限制,因此,您无法向后滚动到起点。所以,你错过了完整的输出。
假设您使用的是Linux,请运行您的可执行文件,如
./ a.out> test1.txt的
然后使用vi
vim test1.txt
希望你能得到完整的o / p。
答案 2 :(得分:2)
您可以通过按顺序打印数字而不用新行确认来使自己更容易一些。这将消除滚动问题:
for (counter = start ; counter <= end ; counter++)
{
printf(" %d" , counter) ;
}
printf ("\n");
答案 3 :(得分:2)
尝试在printf()
中添加空格,而不是像
'\n'
printf("%d " , counter) ;
答案 4 :(得分:1)
您的程序将打印整个序列,只是您无法看到它。 尝试将输出写入文件,然后您将能够看到整个输出。 这件事正在发生,因为控制台的容量有限,否则你的代码将运行得非常好。