我在代码的另一部分做了完全相同的事情,没有错误或工作方式有任何问题,但是在这一部分,所以给了我一个错误。 函数是;
void triangle(int height,int base)
{
printf("Enter the base of the triangle:");
scanf("%d",&base);
printf("\nEnter the height of the triangle:");
scanf("%d",&height);
int area;
area = (height*base)/2;
printf("\nTriangles area is %d.",area);
}
我在代码中使用了一个开关大小写函数,这就是我在主函数中调用它的方式;
case 3:
{
triangle(area);
}
感觉很奇怪,但是效果很好;
void square(int length)
{
printf("Enter the length of square:");
scanf("%d",&length);
int area;
area = length*length;
printf("\nRectangles area is %d.",area);
}
喜欢这个
case 1:
{
square(area);
}
答案 0 :(得分:0)
我在另一部分代码中做的完全相同,没有错误或 它的工作方式有任何问题,但是在这一部分,所以它给了 我一个错误。
C不能保证在编译时或运行时都不能诊断出所有不正确的代码。但是,您应该提高编译器的警告级别。如果此后它在任何地方都接受了您的triangle()
函数的调用,而不仅仅是两个参数,并且没有发出至少某种警告,则将其丢弃并选择一个更好的警告。
函数就是;
void triangle(int height,int base) { printf("Enter the base of the triangle:"); scanf("%d",&base); printf("\nEnter the height of the triangle:"); scanf("%d",&height); int area; area = (height*base)/2; printf("\nTriangles area is %d.",area); }
请注意,即使您使用正确数量的参数调用函数,您的函数实际上并未将调用者提供的值用于任何一个参数,也不以任何方式将任何信息返回给其调用者。如果那是您想要的,那么最好将其声明为接受 no 参数,并以这种方式进行调用:
void triangle(void) {
int length;
int height;
// ...
请注意,length
和height
现在严格来说是局部变量。您将这种变化称为:
triangle();