C语言发一个文件通过了编译 但是文件运行中崩溃了 求高手解答

#include<stdio.h>intmain(){inta,b,c,p[3],d;printf("请输入三个整数");for(d=0;d<3;d++){scanf("... #include <stdio.h>

int main()
{int a,b,c,p[3],d;
printf("请输入三个整数");
for(d=0;d<3;d++)
{scanf("%d",p[d]);}
void paixu(int * p);
paixu(p);
for(d=0;d<3;d++)
{printf("%d",p[d]);}
return 0;
}

void paixu(int * p)
{int i,k,d;
for(i=0;i<2;i++)
{
for(k=i+1;k<3;k++)
{
if(p[k]>p[i])
d=p[i];p[i]=p[k];p[k]=d;
}
}
}
展开
 我来答
free逍遥星空
2017-07-15 · TA获得超过344个赞
知道小有建树答主
回答量:231
采纳率:100%
帮助的人:202万
展开全部
#include <stdio.h>
// 风格建议:函数申明最好放在文件开头,而不是在函数内部
void paixu(int *);
int main(){
    int a,b,c,p[3],d;
    printf("请输入三个整数");
    for(d=0;d<3;d++){
        // 错误点1:需要scanf()后面的参数需要的是地址,因此这里需要加&
        scanf("%d",&p[d]);
    }
    paixu(p);
    for(d=0;d<3;d++){
        printf("%d ",p[d]);
    }
    return 0;
}

void paixu(int * p)
{
    int i,k,d;
    for(i=0;i<2;i++)
    {
        for(k=i+1;k<3;k++)
        {
            if(p[k]>p[i]){
                //错误点2:翻转操作需要在一个if语句块内
                d=p[i];p[i]=p[k];p[k]=d;
            }
        }
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式