谁都好,求帮看哪里出错了。

include<stdio.h>

void paixu(int a[],int n)
{
int i,j,t;
for(j=0;j<n;j++ )
for(i=0;i<n-j;i++)
if(a[i]>a[i+1])
t=a[i],a[i]=a[i+1],a[i+1]=t;
}
int mian()
{
int i,n;
scanf("%d",&n);
int a[n],b[n];
for(i=0;i>n;i++)
scanf("%d",&a[i]);
for(i=0;i>n;i++)
scanf("%d",&b[i]);
paixu(a,n);
paixu(b,n);
for(i=0;i<=n;i++)
{
if(a[i]==b[i])
continue;
else
{
printf("0");
break;
}
if(i=n)
printf("1");
}
return 0;
}

img

你题目的解答代码如下:

#include<stdio.h>
void paixu(int a[], int n)
{
    int i, j, t;
    for (j = 0; j < n-1; j++)//改成 n-1
        for (i = 0; i < n - j -1; i++) //改成 n - j -1; 否则 a[i + 1]会下标越界
            if (a[i] > a[i + 1])
                t = a[i], a[i] = a[i + 1], a[i + 1] = t;
}
int main()  //是main 不是mian
{
    int i, n;
    scanf("%d", &n);
    int a[n], b[n];
    for (i = 0; i < n; i++)  //改成 i < n  不是 >
        scanf("%d", &a[i]);
    for (i = 0; i < n; i++)  //改成 i < n  不是 >
        scanf("%d", &b[i]);
    paixu(a, n);
    paixu(b, n);
    for (i = 0; i < n; i++)  //改成 i < n  不是 <=
    {
        if (a[i] == b[i])
            continue;
        else
        {
            printf("0");
            break;
        }
    }
    if (i == n)  //这个if要放到for外, 判断是否相等是两个等号 == 一个=是赋值
        printf("1");
    return 0;
}

img

如有帮助,望采纳!谢谢!

你的代码中有不少错误:
(1)paixu函数的内层for循环错误,for(i=0;i<n-j;i++) 改成 for(i=0;i<n-j-1;i++)
(2)main函数你拼写错了,不是mian 是main
(3)main函数中for循环中,
if(i=n) printf("1"); 这里永远不会执行,因为当if(a[i]==b[i])成立的时候,执行continue,继续下一次循环了。而当if(a[i]==b[i])不成立的时候,执行else{ printf("0"); break;},这里直接break退出for循环了,所以你的逻辑需要好好想想到底对不对。
(4)if(i=n) printf("1"); 这里,应该是 if(i==n)
(5)for(i=0;i<=n;i++) 这里应该是for(i=0;i<n;i++)

代码修改如下,第(3)处的逻辑错误,你需要贴出题目要求来才能帮你改

#include <stdio.h>
void paixu(int a[],int n)
{
    int i,j,t;
    for(j=0;j<n-1;j++ ) //这里改成j<n-1
        for(i=0;i<n-j-1;i++) //这里改成 i<n-j-1
            if(a[i]>a[i+1])
            {
                t=a[i];
                a[i]=a[i+1];
                a[i+1]=t;
            }
}
int main()//拼写错误mian
{
    int i,n;
    scanf("%d",&n);
    int a[100],b[100]; //使用变量定义数组长度,在某些平台下编译不过,所以这里最好不要这么用,如果题目中说明了n的范围,直接用最大值,这里用100
    for(i=0;i>n;i++)
        scanf("%d",&a[i]);
    for(i=0;i>n;i++)
        scanf("%d",&b[i]);
    paixu(a,n);
    paixu(b,n);
    for(i=0;i<n;i++) //这里是i<n 
    {
        if(a[i]==b[i])
            continue;
        else
        {
            printf("0");
            break;
        }
        //这里的if永远不会执行,你的逻辑有问题,你好好想想吧,我不知道你的题目要求,也没法帮你改
        if(i==n) //这里是==
            printf("1");
    }
    return 0;
}