想问一下我的这个代码为什么运行不出来想要的答案,这个要求如下
printf输出n x是没有意义的,因为那时候没有值
然后,因为你都是整数,除法是整除,整数也没有什么保留小数的说法,你应该换成float
最后看看你的问题怎么问的,你的通项公式对不对
#include <stdio.h>
void swap(char* buf1, char* buf2, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
char tmp = *buf1;
*buf1 = *buf2;
*buf2 = tmp;
buf1++;
buf2++;
}
}
//写一个通用的冒泡排序
void pop_sort(void* base, int num, int sz, int (*cmp)(const void* e1, void* e2))
{
/
int i = 0;
int j = 0;
for (i = 0; i < num; i++)//循环的趟数
{
for (j = 0; j < num - i - 1; j++)//每趟循环的次数
{
if (cmp((char*)base +j* sz, (char*)base +(j+1) * sz) > 0)
{
swap((char*)base + j * sz, (char*)base + (j + 1) * sz, sz);
}
}
}
}
int cmp_int(void *e1,void *e2)
{
return *((int *)e1) - *((int*)e2);
}
int main()
{
int arr[10] = { 9,8,7,6,5,4,3,2,1,0 };
int sz = sizeof(arr[0]);
int num = sizeof(arr) / sizeof(arr[0]);
pop_sort(arr, num, sz, cmp_int);
int i = 0;
for (i = 0; i < num; i++)
{
printf("%d", arr[i]);
}
}