user-0 提问: C语言基础问题在线求助！求各位大佬救救孩子吧，看看到底是哪里出了问题

回复:
user: user-0
content: 引用 2 楼 自信男孩的回复:#include<stdio.h>  #define N 20  void bubblesort(int a[],int n) {     int i,j,t;     //for(i=1;i<n;i++)     for(i=0;i<n;i++)     {         //for(j=0;j<n-i;j++)         for(j=0;j<n-i-1;j++)         {             if(a[j]>a[j+1])             {                 t=a[j];                 a[j]=a[j+1];                 a[j+1]=t;             }          }     } }   int merge_array(int *data1, int n1, int *data2, int n2, int *data3) {     int i, j, k;      i = j = k = 0;     while (i < n1 && j < n2) {         if (data1[i] < data2[j]) {             data3[k] = data1[i];             k++;             i++;         } else if (data1[i] == data2[j]) {             data3[k] = data1[i];             k++;             i++;             j++;         } else {             data3[k] = data2[j];             k++;             j++;         }     }     while (i < n1) {             data3[k] = data1[i];             k++;             i++;     }     while (j < n2) {             data3[k] = data2[j];             k++;             j++;     }      return k; }  int main() {     int data1[N],data2[N],n1,n2,n3,i,j,k;     //int data3[N];     int data3[N * 2];     scanf("%d",&n1);     if (n1 > N)         n1 = N;     for(i=0;i<n1;i++)     {         scanf("%d",&data1[i]);     }     scanf("%d",&n2);     if (n2 > N)         n2 = N;     for(i=0;i<n2;i++)     {         scanf("%d",&data2[i]);     }      bubblesort(data1,n1);     bubblesort(data2,n2);      n3 = merge_array(data1, n1, data2, n2, data3);  /*     for(i=0;i<n1;i++)     {         data3[i]=data1[i];     }     for(j=n1;j<n3;j++)     {         k=j-n1;         data3[j]=data2[k];     } */     for(i=0;i<n3;i++)     {         printf("%d ",data3[i]);     }     putchar(10);     return 0; }  供参考～  建议对比自己的代码找一下每个修改之处自己的问题。 谢谢我认真看过了，你真是太厉害啦

user: user-1
content: #include<stdio.h>  #define N 20  void bubblesort(int a[],int n) {     int i,j,t;     //for(i=1;i<n;i++)     for(i=0;i<n;i++)     {         //for(j=0;j<n-i;j++)         for(j=0;j<n-i-1;j++)         {             if(a[j]>a[j+1])             {                 t=a[j];                 a[j]=a[j+1];                 a[j+1]=t;             }          }     } }   int merge_array(int *data1, int n1, int *data2, int n2, int *data3) {     int i, j, k;      i = j = k = 0;     while (i < n1 && j < n2) {         if (data1[i] < data2[j]) {             data3[k] = data1[i];             k++;             i++;         } else if (data1[i] == data2[j]) {             data3[k] = data1[i];             k++;             i++;             j++;         } else {             data3[k] = data2[j];             k++;             j++;         }     }     while (i < n1) {             data3[k] = data1[i];             k++;             i++;     }     while (j < n2) {             data3[k] = data2[j];             k++;             j++;     }      return k; }  int main() {     int data1[N],data2[N],n1,n2,n3,i,j,k;     //int data3[N];     int data3[N * 2];     scanf("%d",&n1);     if (n1 > N)         n1 = N;     for(i=0;i<n1;i++)     {         scanf("%d",&data1[i]);     }     scanf("%d",&n2);     if (n2 > N)         n2 = N;     for(i=0;i<n2;i++)     {         scanf("%d",&data2[i]);     }      bubblesort(data1,n1);     bubblesort(data2,n2);      n3 = merge_array(data1, n1, data2, n2, data3);  /*     for(i=0;i<n1;i++)     {         data3[i]=data1[i];     }     for(j=n1;j<n3;j++)     {         k=j-n1;         data3[j]=data2[k];     } */     for(i=0;i<n3;i++)     {         printf("%d ",data3[i]);     }     putchar(10);     return 0; }  供参考～  建议对比自己的代码找一下每个修改之处自己的问题。

user: user-2
content: 两个问题: 1.n3应该在输入n1.n2之后再赋值 2.数组date3没有进行去重和排序