gpt4 book ai didi

循环输入错误后继续

转载 作者:太空宇宙 更新时间:2023-11-03 23:48:32 25 4
gpt4 key购买 nike

#include<stdio.h>
#define M 6
#define N 5


int main(){

int array[N][M];
int i, j;

for(i=0;i<N;i++){
for(j=0;j<M;j++){
scanf("%d", &array[i][j]);
if(array[0][1]<1 || array[0][2]<1 || array[0][3]<1){
// ??
}

}
}
return 0;
}

如果输入与我的(很可能是错误的)if 语句不匹配,我该如何做到这一点
用户必须重新输入该数组字段,它不会直接跳到下一个输入字段吗?

最佳答案

How do I make it so that if the input doesn't match my (very likely wrong) if statement, the user must reinput that array field and it doesnt just skip to the next input field?

您可以让 if 语句的条件确定如何更新循环变量(用作数组索引):

for(i=0;i<N;i++){     // dont update i here
for(j=0;j<M;j++){ // dont update j here

而是使用 while 循环来更新 ij 如果您的条件得到满足以及是否还有剩余的行和列:

while(1) {
printf("Enter value: ");
scanf("%d", &array[i][j]);
printf("array[%d][%d] = %d\n", i, j, array[i][j]);
if(YOUR_CONDITION) {

// update i and j inside this statement
// this means the user can advance to the next array element
// ONLY if your if statement condition is true

if(j < M-1) { // if there are columns left, update j
j++;
}
else if(i < N-1) { // otherwise, if there are rows left, reset j and update i
j = 0;
i++;
} else {
break; // if we reach this point we are out of rows and columns and we break out of the loop
}
} else {
printf("Please satisfy the condition!\n");
}
}

现在,就YOUR_CONDITION而言:

if(array[0][1]<1 || array[0][2]<1 || array[0][3]<1)

此语句的问题在于它正在检查数组中用户尚未输入的值。

如果您指定要对这条语句执行的操作,也许我可以提供进一步的帮助。

关于循环输入错误后继续,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26853506/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com