gpt4 book ai didi

c - 我需要检查我的数组输入是整数还是阿尔法,但我的程序一直循环

转载 作者:行者123 更新时间:2023-11-30 20:21:33 25 4
gpt4 key购买 nike

主要功能如下我需要检查我的数组输入是整数还是阿尔法,但我的程序一直在循环

int main (void) {
int i;
float arr[3];
for(i=0; i<3; i++){
printf("Enter the weight of the cabin %d:\t", i+1);
scanf("%f", &arr[i]);
if(isdigit(arr[i])){
*im not sure about this part*\
printf("Cabin %d is %.2f\n", i+1, arr[i]);
}else{
printf("Error! Please enter the weight of the cabin %d again:\t", i+1);
scanf("%d", &arr[i]);
printf("Cabin %d is %.2f\n", i+1, arr[i]);
}
if(i==2){
i=0-1;
}
}
}

我希望我的输出是这样的:

输入舱室重量:r错误!请再次输入客舱重量:

不过,我明白了。输入舱室重量:r它疯狂地循环,我看不到屏幕上出现的内容

最佳答案

isdigit() 可用于检查单个字符。您传递给它的是一个 float (可能完全畸形)。您需要做的是将输入作为字符串读取并检查每个字符,直到遇到“\0”。

除此之外,你的程序不断循环的原因是

if(i==2){ 
i=0-1; // i = -1;
}

你永远不会让 i 超过 2 以使循环停止。

关于c - 我需要检查我的数组输入是整数还是阿尔法,但我的程序一直循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42526198/

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