C语言数组与数组之间的相互插入

来源:百度知道 编辑:UC知道 时间:2024/05/15 05:48:06
#include<stdio.h>
void main()
{
int a,i,j,n,temp,z;
int num[]={n,n,n,n,n,n,n,n,n,n,n,n,n};
int num_2[]={z,z,z};
printf("请输入您要输入的数量(10个以下):");
scanf("%d",&n);
printf("请输入%d个数字:",n);
for(i=0;i<n;i++)
{
scanf("%d",&num[i]);
}
printf("您输入的数字为:");
for(i=0;i<n;i++)
{
for(j=0;j<n-1;j++)
{
if(num[j] > num[j+1])
{
temp = num[j] ;
num[j] = num[j+1] ;
num[j+1] = temp ;
}
}
}
for(i=0;i<n;i++)
{
printf("%d ",num[i]);
}
printf("\n");
printf("请输入您要插入的数量(最大支持3个):");
scanf("%d",&z);
printf("请输入%d个数:",z);
for(a=0;a<z;a++)
{
scanf("%d",&num_2[a]);
}
for(a=0;a<z;a++)
{
for(i=0;i<n;i++)
{
if(num

把break;写在if语句里面就对了。

你的程序看起来让人很头大,因为你写的太乱了。我给你一个思路你很快就应能解决这个问题了,我小看了一下你的代码,那个"break;"好像有问题,不就放那儿(我没有细看,太让人头大了。好了说一下我的思路吧。
先写一个排序的函数:
bool ArraySort(int* nArray,int nCount)
{
...
}
让用户输入要输入的个数,然后再分配n+3的空间(alloc,当然你也可以先int num[13],而不是用a“alloc”),然后排序,再让用户输入要插入的数据,放在n以后的空间,再次调用ArraySort。最后还要记得释放你分配的空间(如果你之前用的是int num[13]就不用了)。
你上面的代码有很大的bug,如果用户输入超过了10个,你的代码就会出问题,如果用户有心用你的程序干坏事儿就有机可成,一定要判断一下上面代码中的那个“n”在输入数据之前。