程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。
程序源代码:
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] + ", ");
}
}
}