2015-10-22 42 views
1

此C代码应该创建一些随机数并打印它们,然后对它们进行排序并再次打印它们,但它只是打印排序的数字。任何机构能帮助我吗?printf不起作用

#include <stdio.h> 
    #include <time.h> 
    #include <stdlib.h> 
    int main(){ 
     int i, j, k; 
     float temper; 
     time_t t; 
     float grades[1000]; 
     fflush(stdout); 
     printf("Here are the number\n"); 
     srand(time(&t)); 
     for(i=0;i<1000;i++){ 
      grades[i]=rand(); 
      printf("%f\n", grades[i]); 
     } 
     for(i=0;i<1000;i++){ 
      int swap=0; 
      for(j=i;j<1000;j++){ 
       if(grades[i]>grades[j]){ 
        temper=grades[i]; 
        grades[i]=grades[j]; 
        grades[j]=temper; 
        swap=1; 
       } 
      } 
     } 
     printf("sorting is done"); 
     for(i=0;i<1000;i++){ 
      printf("%f\n", grades[i]); 
     } } 
+0

按预期为我工作。它随机生成打印数字,然后打印排序列表。你可以发布一个样本运行,最好用少量的数字,比如说10个左右? – dbush

+0

它也在这里工作!!!! –

+1

这个问题的标题是误导性的。也许它应该被编辑为“意外缺少printf输出”? –

回答

4

您的程序工作正常。尝试将所有内容从1000改为10,以便自己进行测试和查看。

正在发生的事情是,它将所有内容快速打印出来,以至于第一个1000页面不在页面上。

+0

我做到了,它的工作原理。谢谢。 – Saeed

1

该代码是正确的。

  1. 尝试使用小尺寸阵列,
  2. 写所有的日志文件。
1

代码也适用于我。也许你的终端没有存储足够的线路让你看到输出的开始。您可以在终端的设置中更改该设置。或者您可以将它们捕获到文件中。如果你是谷歌的话,有一个简单的选择。另外,在另一个printf之间添加一个标记,这个标记很明显,例如:

printf("+++++++++++++++++++++++++++ here is the break point ++++++++++++++++"); 

这会让它更难以错过。祝你好运! PS:在运行程序时,将输出文件输入到文件中,只需键入'>文件名'即可。我打电话给我的math.c,所以当我跑我输入: ' $。/数学>文件' 和整个输出在一个文件名为'文件'

+0

我打电话给我的程序math.c,编译为$ gcc math.c -o math,然后运行,然后cat到一个文件,我做了$。/ math> file – JParks