gpt4 book ai didi

检查用户输入是否在特定限制之间,如果在输入正确的输入之前不再询问

转载 作者:行者123 更新时间:2023-11-30 17:50:27 24 4
gpt4 key购买 nike

我的程序编译正确,但运行时遇到问题。第一个 scanf(宽度)工作正常,但是当我尝试使用另一个 scanf(高度)时,我得到段错误 11。我可以让这个程序不使用指针工作吗? (我还需要限制检查器功能,因为我必须在我的程序中一次又一次地使用它)。

#include <stdio.h>
void limitChecker(int x, int y, int* input);
int main(void)
{
int* x;
int* y;
printf("Enter the width of the windows. (3 - 5) : ");
scanf("%d", x);
limitChecker(3, 5, x);
printf("width: %d \n", *x);
printf("Enter the height of the windows. (2 - 4) : ");
scanf("%d", y);
limitChecker(2, 4, y);
printf("Height: %d \n", *y);

}

void limitChecker(int x, int y, int* input)
{
while(!(*input>=x && *input<=y))
{
printf("Please enter a value between (%d - %d): ",x,y);
scanf("%d", input);
}
}

最佳答案

您需要使用对 scanf() 中使用的变量的引用。

例如,scanf("%d", &x);

scanf() 的第一个参数用于指定数据类型,后面的参数是指向您希望存储用户输入的位置的指针列表。

更正的代码:

#include <stdio.h>
void limitChecker(int x, int y, int* input);
int main(void)
{
int x;
int y;
printf("Enter the width of the windows. (3 - 5) : ");
scanf("%d", &x);
limitChecker(3, 5, &x);
printf("width: %d \n", x);
printf("Enter the height of the windows. (2 - 4) : ");
scanf("%d", &y);
limitChecker(2, 4, &y);
printf("Height: %d \n", y);

}

void limitChecker(int x, int y, int* input)
{
while(!(*input>=x && *input<=y))
{
printf("Please enter a value between (%d - %d): ",x,y);
scanf("%d", input);
}
}

关于检查用户输入是否在特定限制之间,如果在输入正确的输入之前不再询问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17265887/

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