刚刚开始自学C,用的vs,想编写一个可以将数组里字符串倒序排列的自定义函数,结果就不知道哪里错了
求中间字符下标num时错了,比如bit,中间字符下标是1,i为3,则(i+1)/2=2,所以i为奇数时,直接num=i/2即可。
偶数时,也是num=i/2
完整代码这里:【有用的话请采纳一下😁】
#include <stdio.h>
#include <math.h>
void as(char a[])
{
int i = 0;
for (i = 0; i < 100; i++)
{
if (a[i] == '\0')
break;
}
int left = 0; // 闭区间左端点位置
int right = i - 1; // 闭区间右端点位置
int num = 0;
num = (i - 1) / 2; // 中间位置
int s = 0;
for (s = 0; s <= num; s++)
{
int t = 0;
t = a[left];
a[left] = a[right];
a[right] = t;
left++;
right--;
}
}
int main()
{
char arr[] = "12345678";
as(arr);
printf("%s\n", arr);
return 0;
}