请问下面的代码错哪了?该怎么改?

# include<stdio.h>
void main(){
char A[10];
int n=10;
void exchange(char a[],int b);
printf("输入字符数组的值\n");
scanf("%s",A);
exchange(A,n);
}
void exchange(char a[],int b){
int c,temp;
for(c=0;c<b;c++){
temp=a[c];
a[c]=a[b-1-c];
a[b-1-c]=temp;
}
printf("%s",a);
}

德玛西亚99
浏览 70回答 2
2回答

ABOUTYOU

不要传递10给b,除非你输入的刚好是10个字符,而且还要考虑结束符'\0'帮你改了//就地逆转字符串# include<stdio.h>void main(){char A[10];int n=10;void exchange(char a[]);printf("输入字符数组的值\n");scanf("%s",A);exchange(A);printf("%s\n",A);}void exchange(char a[]){ int n=0;char temp,*s=a;while(*a++) n++; //得到字符个数&nbsp;n/=2; a-=2;for(int i=0;i<n;i++)&nbsp;{ temp=*a;*a=*s;*s=temp;a--;s++;}}

慕的地10843

#include<stdio.h>#include<string.h>int main() {char a[10];printf("输入字符数组的值\n");scanf("%s",a);int n=strlen(a);for (int i = 0; i < n; i++)printf("%c", a[n - i - 1]);}不就行了&nbsp;#include<stdio.h>void exchange(char a[], int b);int main() {char A[10];int n = 10;printf("输入字符数组的值\n");scanf("%s", A);exchange(A, n);}void exchange(char a[], int b) {int c, temp;for (c = 0; c < b / 2; c++) { /////////// b/2temp = a[c];a[c] = a[b - 1 - c];a[b - 1 - c] = temp;}printf("%s", a);}
打开App,查看更多内容
随时随地看视频慕课网APP