在C中使用文件冒泡排序

时间:2012-01-11 18:25:17

标签: c file sorting bubble-sort

我想通过写入文件来实现冒泡排序。我认为排序是实现良好的,但写入文件有问题。

int main(int argc, char *argv[])
{
   FILE *fp; 
   int tab[] = {3,5,1,2,4};
   int i, j, temp;
   if ((fp=fopen("test.txt", "w"))==NULL) {
     printf ("Error!\n");
     exit(1);
   }
   for(i =0; i<5;i++)
   {
     for(j=0; j<4; j++)
     {
       if(tab[j] > tab[j+1])
       {
         temp = tab[j+1];   
         tab[j+1] = tab[j]; 
         tab[j] = temp;
       }
     }
   }

   fprintf (fp, "%d", tab);
   fclose (fp); 
   return 0;
}

你能帮助我吗?

1 个答案:

答案 0 :(得分:3)

由于%d格式字符串指示printf()打印单个整数,因此代码尝试执行的操作是将指针写入整数数组,就像它是一个整数一样。

只需循环遍历数组并在每次迭代中打印一个int。您还需要决定要使用的分隔符,否则将并排编写所有整数,以防止读者理解它们。