【发布时间】:2017-08-15 12:05:08
【问题描述】:
下面是我写的插入排序代码
#include<stdio.h>
#include<conio.h>
void main()
{
int i, j, a[10], temp, f = 0, k = 0;
clrscr();
printf("\n\t\t\t\tINSERTION SORT\nEnter the Array:-\n");
for (i = 0; i <= 9; i++)
scanf("%d", &a[i]);
for (i = 0; i <= 9; i++) // 1st for loop
{
temp = a[i];
for (j = 0; j <= i - 1; j++) // 2nd for loop
{
f = 0;
if (a[i]<a[j]) // if loop
{
for (k = i - 1; k >= j; k--) // 3rd for loop
a[k + 1] = a[k];
a[k + 1] = temp;
break; // break statement
}
}
}
printf("\nThe sorted array is:-\n");
for (i = 0; i <= 9; i++)
printf("%d\n", a[i]);
getch();
}
有人告诉我,break 语句会停止那个特定的瞬间(nth 当前正在运行的最内层循环的时间并启动它的下一个实例(n+1 time)。所以在这里我很困惑,这里的 break 语句是否会停止第三个循环或 if 条件。但是我被告知它会影响第二个循环。
这里有人可以告诉我它将在哪个 for 循环上产生效果。
【问题讨论】:
-
您被告知的内容符合
continue声明。 "if loop" 也不是一回事。 -
Ewww
conio... -
首先format 那个烂摊子。完全看不懂。
-
您被告知的内容符合
continue声明。break语句刚刚退出循环(在您的情况下是第二个 for 循环)。
标签: c for-loop iteration break control-flow