程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
程序源代码:
main()
{
int a[11]={1,4,6,9,13,16,19,28,40,100};
int temp1,temp2,number,end,i,j;
printf("original array is:\n");
for(i=0;i<10;i++)
printf("%5d",a[i]);
printf("\n");
printf("insert a new number:");
scanf("%d",&number);
end=a[9];
if(number>end)
a[10]=number;
else
{for(i=0;i<10;i++)
{ if(a[i]>number)
{temp1=a[i];
a[i]=number;
for(j=i+1;j<11;j++)
{temp2=a[j];
a[j]=temp1;
temp1=temp2;
}
break;//这个到底是干嘛 的。干嘛的呀!想了半天不知道呀!
}
}
}
for(i=0;i<11;i++)
printf("%6d",a[i]);
}
我就是想问下,这个IF(里面的break)是干什么的,难道是跳出IF语句 的???
你是说跳出第一个for循环还是,跳出IF()。。。。if你不用break,他也跳出啊
追答跳出的是第一个for循环。if如果你不写break,程序会继续走下一条循环的,
追问是跳出第一个for循环,应该写在第一个FOR循环里面,干嘛写在
If( ...
break;
)的IF语句语句里面让人费解。。
上面是不是,可以写成
for(...
if(...for(...) )
break;
)
你钻牛角拉。。。
如果按照你后面那样写,整个循环知会走一次。break跳出的是当前最近的循环,离if最近的循环就是第一个for..
回答 跳出的是第一个for循环。if如果你不写break,程序会继续走下一条循环的,
你上面回答说跳出的是第一个FOR。
如果按照你后面那样写,整个循环知会走一次。break跳出的是当前最近的循环,离if最近的循环就是第一个for
第二次说,又是跳第一个FOR。
到底这个break是跳那个呀!你说的第一个FOR是不是else旁边的那个for呀!第3次问了,麻烦一次搞定我吧!在问要分数了。。55555
我按照你的思路写一个完整的java的给你。
import java.util.Scanner;
public class B {
public static void main(String[] args) {
int nums[] = {1,4,6,9,13,16,19,28,40,100};
int[] newNums = new int[11];
System.out.print("Original array is: ");
for(int i = 0; i nums[9]){
newNums[10] = end;
}else{
for(int i = 0; i number){
newNums[i] = number;
for(int j = i + 1; j < newNums.length; j++){
newNums[j] = nums[i++];
}
break;
}
}
}
nums = newNums;
System.out.println("After inserting, the array is: ");
for(int i = 0; i < nums.length; i++){
System.out.print(nums[i] + ", ");
}
}
}
...现输入一个数,要求按原来的规律将它插入数组中,试编写程序。_百度知 ...
【答案】:程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。程序源代码如下。main(){ int a[11]=(1,4,6,9,13,16,19,28,40,100};int tempI,temp2,number,end,i,j;printf("original array is:\\n");for(i=0:i<10...
...现输入一个数,要求按原来的规律将它插入数组中。
import java.util.Scanner;public class Prog30{ public static void main(String[] args){ int[] A = new int[]{0,8,7,5,9,1,2,4,3,12};int[] B = sort(A);print(B);System.out.println();System.out.print(" 请输入 10 个数的数组: ");Scanner scan = new Scanner(System...
...现输入一个数,要求按原来的规律将它插入数组中。
private static int[] insert(int[] a,int in){ int[] copy = new int[a.length+1];\/\/新建一个临时数组,长度比原数要大1 copy[0]=in;\/\/先将要插入的数据放入第一单元格 \/\/原来数组中的数复制过来,存在第二格为开始的单元格中 for(int i=0; i<a.length; i++)copy[i+1]=a[i...
已有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入...
最后一个循环输出插入数后的数组各元素值。程序运行时,输入数47。从结果中可以看出47已插入到54和 28之间。
有一个已排好序的数组,要求输入一个数后,按原来排序的规律将它插入数组...
int a[11]={1,4,6,9,13,16,19,28,40,100};int
...已有一个排序好的数组。现输入一个数,要求按原来顺序将它插入到数组...
参考代码:a = [15, 12, 10]b = sorted(a)print(b)c = 13for i in range(len(b)): if b[i] > c: breakd = b[:i] + [c] + b[i:]print (d)
已有一个已排好序的整数数组, 要求输入一个数后, 按照原来排序的规律...
从最小的数的一边开始逐个与所输入的数比较,将该数插入第一个大于该数的数前面 插入方法,首先把插入处之后的所有数后移一位,然后插入。我不知道你要什么语言的所以只给你说方法
JAVA一个已经排好序的数组(元素为10个),插入一个数按照原来的排序?
1、数组插入新数据,首先需要扩容,java中数组需要使用数组的扩容方式:arr = Arrays.copyOf(arr, arr.length+1);或者,\/\/已有 int [] num ;num = new int[num.length+1];重新定义数组,之后按顺序遍历插入,或者插入以后再排序也是可以的。
...今输入一个数,要求按原来排序的规律将它插入数组中。”
for(i=0;i<10;i++){\/\/插入一个元素,组数长度增1 printf("%d",a);} printf("\\n");} 输入12,输出结果如下:总结:一组数组,直到找到大于或等于输入数的时候,找到插入数的下标,a[i+1]=a意思是将a的值给a[i+1],往后移一个(插入一个数,后面元素依次往后移动一个)方法二、includ...
编程题: 有一个已排好序的数组,要求按原来排序的规律将它插入数组中...
是需要输出还是什么 这种排序的时间复杂度很高= =你可以用set做