字符数组输出为空,求大神讲解

#include<stdio.h>
#include<stdlib.h>
int main()
{
	void exchange(char b[10]);
	int i;
	char a[10];
	for (i = 0; i < 10; i++)
		scanf_s("%c",&a[i]);
	exchange(a);
	printf("%c", a[i]);
	system("pause");
	return 0;
}
void exchange(char b[10])
{
	int i, j;
	char t;
	for (i = 0; i < 10; i++)
		for (j = 0; j < 10 - i; j++)
			if (b[j] > b[j + 1])
			{
				t = b[j + 1];
				b[j] = b[j + 1];
				b[j + 1] = t;
			}
}

 

你输入

exchange(a);

printf("%c", a[i]);这里,i已经是10了,越界了。而且你的输出是%c,只输出1个字符。改成printf("%s\n",a);

如有帮助,请采纳一下,谢谢。