c语言数组指针问题?

定义一个数组stu[10],存放10个学生成绩,用指针完成排序啥的,每次运行到排序就崩溃,不知道问题在哪#include<stdio.h>voidInput(int*p)... 定义一个数组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;
}
}
}
}
展开
 我来答
喜羊羊651
2020-05-28 · TA获得超过314个赞
知道小有建树答主
回答量:1186
采纳率:76%
帮助的人:112万
展开全部

内层for循环条件错误。

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最大的宝宝
2020-05-28 · TA获得超过828个赞
知道小有建树答主
回答量:1569
采纳率:67%
帮助的人:398万
展开全部
%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;
}
}
}
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式