-1

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

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;
}

你能帮助我吗?

4

1 回答 1

3

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

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

于 2012-01-11T18:29:33.893 回答