全部问题 > 当前问题

为什么定义函数时,必须为每个形参分别定义变量类型。以前不都是int x,y,z;吗

第4课 改错题真题

给定程序MODI1.C中函数fun的功能是:求三个数的最小公倍数。

例如,给主函数中的变量x1、x2、x3分别输入15  11  2,
则输出结果应当是:330。

请改正程序中的错误,使它能得出正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。

#include <stdio.h>

/************found************/

fun(int  x,int y,int z )

{  int  j,t ,n ,m;

   j = 1 ;

   t=j%x;

   m=j%y ;

   n=j%z;

   while(t!=0||m!=0||n!=0)

   {  j = j+1;

      t=j%x;

      m=j%y;

      n=j%z;

   }

/************found************/

   return j;

}

main( )

{  int   x1,x2,x3,j ;

   printf("Input x1  x2  x3:  ");  scanf("%d%d%d",&x1,&x2,&x3);

   printf("x1=%d, x2=%d, x3=%d \n",x1,x2,x3);

   j=fun(x1,x2,x3);

   printf("The minimal common multiple is : %d\n",j);

}


.李文浩 2016-9-4 10:03:45

共 4 个回答

qqq 2016-9-4 10:44:54

定义形参时就是每个变量都要有类型,即使类型一样也不能写成int i,j,k这样

.李文浩 2016-9-4 10:55:33

回复 qqq:以前不就是这么定义的吗?include<stdio.h> int x,y,z;...........


.李文浩 2016-9-4 10:58:10

回复 qqq

#include<stdio.h>

main()

{

  int a=3,b=5,temp;

  printf("请输入a和b的值:");



或是

#include<stdio.h>

main()

{ int a,b,max;

  switch(a)

  {

  case(1):printf("1");break;

  case(2):printf("2");break;

  case(3):printf("3");break;

  default:printf("4");break;

  

  }

  a>b?max=a:max=b;/*输出max*/

}


最佳答案

qqq 2016-9-4 11:03:19

我知道,你那是在函数里定义的变量,我说的是函数的形参定义不能写成省略形式。。

就是说fun(int i, int j, int k)不能写成fun(int i,j,k),懂了吗?

问题来自: 改错题真题