c语言数组指针问题?

定义一个数组stu[10],存放10个学生成绩,用指针完成排序啥的,每次运行到排序就崩溃,不知道问题在哪
#include<stdio.h>
void Input(int* p);
void Output(int* p);
void Sort(int* p);
int stu[10];
int* p =stu;
int main() {
int i;
Input(p);
Output(p);
Sort(p);

for( i = 0; i < 10; i++){
printf("%s",stu[i]);
}

}

void Input(int* p) {
int i;
for (i = 0; i < 10; i++, p++) {
scanf("%s", p);

}
}
void Output(int* p) {
int i;
for (i = 0; i < 10; i++, p++) {
printf(" %s", p);
}

}
void Sort(int* p) {
int i, j, temp;

for(i = 0; i < 10; i++) {
for( j = 0; j = 10 - i; j++) {
if( stu[j] < stu[j + 1]) {
temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
}

第1个回答  2020-05-28

内层for循环条件错误。

j=10-i 应该改成 j<10-i-1

第2个回答  2020-05-28
%s 改成 %d,另外在必要的地方用\n分一下行。排序里下标错误,修改如下
void Sort(int* p) {
int i, j, temp;

for (i = 0; i < 9; i++) {
for (j = 0; j < 9 - i; j++) {
if (stu[j] < stu[j + 1]) {
temp = stu[j];
stu[j] = stu[j + 1];
stu[j + 1] = temp;
}
}
}
}本回答被提问者采纳
相似回答