我想通过写入文件来实现冒泡排序。我认为排序是实现良好的,但写入文件有问题。
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;
}
你能帮助我吗?
答案 0 :(得分:3)
由于%d
格式字符串指示printf()
打印单个整数,因此代码尝试执行的操作是将指针写入整数数组,就像它是一个整数一样。
只需循环遍历数组并在每次迭代中打印一个int
。您还需要决定要使用的分隔符,否则将并排编写所有整数,以防止读者理解它们。