我想获取“length”输入的值,并将get_length函数发送到main,但是在get_length()之后的printf语句中出现错误;在主要。显然它正在抛弃用scanf输入的内容。如何保持用户输入的新值?
void get_length(int length);
int main(int argc, char * argv[])
{
int length;
int width;
int area;
get_length();
printf("The length of the rectangle is %d.\n", length);
return 0;
}
void get_length(int length)
{
printf("Please enter the length for a rectangle: ");
scanf("%d", &length);
while(length < 1)
{
printf("Enter a positive number.\n");
scanf("%d", &length);
}
return;
}
答案 0 :(得分:2)
如何更改功能的签名?从void get_length(int length)
到int get_length();
int get_length()
{
int length = 0;
printf("Please enter the length for a rectangle: ");
scanf("%d", &length);
while(length < 1)
{
printf("Enter a positive number.\n");
scanf("%d", &length);
}
return length;
}
答案 1 :(得分:1)
int get_length();
int main(int argc, char * argv[])
{
int length;
int width;
int area;
length = get_length();
printf("The length of the rectangle is %d.\n", length);
return 0;
}
int get_length()
{
int length;
printf("Please enter the length for a rectangle: ");
scanf("%d", &length);
while(length < 1)
{
printf("Enter a positive number.\n");
scanf("%d", &length);
}
return length;
}
如上所述,您可以在get_length()函数中返回length
。或者使用pointer
代替,如下所示:
void get_length(int* length);
int main(int argc, char * argv[])
{
int length;
int width;
int area;
get_length(&length);
printf("The length of the rectangle is %d.\n", length);
return 0;
}
void get_length(int* length)
{
printf("Please enter the length for a rectangle: ");
scanf("%d", length);
while(*length < 1)
{
printf("Enter a positive number.\n");
scanf("%d", length);
}
return;
}
在c ++中,您可以使用reference
答案 2 :(得分:1)
有两种方法可以完成工作。第一个是实际返回length
:
int get_length(void)
{
int length;
// get length
return length;
}
和main
:
int length;
length = get_length();
第二种是传递指针并修改指针指向的内容:
void get_length(int* length_ptr)
{
scanf("%d", length_ptr);
}
main
中的:
get_length(&length);
答案 3 :(得分:0)
你有一些问题,一个是你没有将任何参数传递给get_length
,第二个你需要将参数作为指针传递以获得值:
void get_length(int *length)
scanf
会改为:
scanf("%d", length);
和同时到此:
while(*length < 1)
最后你在main
打电话:
get_length(&length);
答案 4 :(得分:0)
您需要使用参数调用get_length。
像这样:
get_length(&length);
让方法取一个int *作为参数。
void get_length(int* length)
然后它可以为你存储长度值。