如果A [] = - 999,如何让循环停止? (我不允许使用休息或继续)
x
|> Seq.groupBy (fun (x, y) -> x)
|> Seq.map (fun (k, v) -> k, v |> Seq.sortBy (fun (x, y) -> y))
答案 0 :(得分:2)
您可以为for
循环添加额外条件:
for(i=0 ; i<10 && A[10]!=(-999) ; i++) {...}
但无论如何,你最好初始化A[10]
一些已知的初始值。您的A
数组也没有A[10]
元素。它的索引从0
到9
。
答案 1 :(得分:2)
你可以设置i = 10,这将终止你的循环
int A[10];
int i , j , b , x;
for(i=0 ; i<10 ; i++)
{
if(A[i]!=-999)
{
printf(" Enter the Number %d : ", i+1 );
scanf("%d", &A[i] );
}
else if(A[i]==-999)
{
i=10;
}
}
答案 2 :(得分:2)
只需添加end
标记。
下面的代码也打破了非数字输入的循环。
#include <stdbool.h>
int A[10];
int i , j , b , x;
bool OK_to_continue = true;
for(i=0 ; OK_to_continue && i<10 ; i++) {
printf(" Enter the Number %d : ", i+1 );
// If scan fails or value read is the special -999
if (scanf("%d", &A[i] ) != 1 || A[i] == -999) {
OK_to_continue = false;
}
}
OK_to_continue = false;
的替代方案是i = 9;
或i = 10;
。这样做的缺点是以下代码丢失了A[]
中有效元素的数量。
存在许多解决方案。建议易于理解和合理有效的。