char-'0'即可得到结果。
第一个函数的形参可以写成直接对char交换。
【以下回答由 GPT 生成】
问题分析: 1. 代码中存在函数的声明和实现不匹配的问题。 2. 使用指针时,应该用*
取出指针指向的值,而不是指针本身。 3. scanf函数中,应该使用%c
来接收字符,而不是%d
。 4. 在排序函数中,应该使用char
类型来接收字符,而不是int
类型。 5. 在排序函数中,应该使用char*
来接收指向字符的指针,而不是int*
类型。
修改方案:
#include<stdio.h>
void Swap(char *x, char *y) {
char temp;
temp = *x;
*x = *y;
*y = temp;
}
void Sort(char *p, int m) {
int i;
char *p1, *p2;
for(i = 0; i < m/2; i++) {
p1 = p + i;
p2 = p + (m-1-i);
Swap(p1, p2);
}
}
int main() {
int i;
char num[7];
for(i = 0; i < 7; i++) {
scanf("%c", &num[i]);
}
Sort(num, 7);
for(i = 0; i < 7; i++) {
printf("%c", num[i]);
}
return 0;
}
修改后的代码已经修正了前述的错误,并能正常将字符反序输出。
【相关推荐】