smart.rich 发表于 2020-2-26 21:41:52

函数入门,检查不出来错误了~~

找出十位同学中的最大年龄
#include <stdio.h>
#include <stdlib.h>
#define NUM 10
int max(int n[]);
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int max(int n[])
{
        int i,max=n;
        for(i=0;i<NUM;i++)
        {
                if(n>n)
                        max=n;
        }
        return max;
}

int main(int argc, char *argv[]) {
        int result;
        int array;
       
        printf("请输入年龄:");
        scanf("%d",&array);
       
        result=max(array);
       
        printf("最大年龄为:%d",result);
        return 0;
}

zltzlt 发表于 2020-2-26 21:47:27

https://fishc.com.cn/forum.php?mod=viewthread&tid=52272&extra=page%3D1%26filter%3Dtypeid%26typeid%3D441

jackz007 发表于 2020-2-26 22:02:47

      没有看见楼主用何种手段获取 10 组键盘输入,并将之全部存入 array[] 数组。
#include <stdio.h>
#include <stdlib.h>
#define NUM 10

int main(void)
{
      int k , min , max , array               ;
      for(min = 0 , max = 0 , k = 0 ; k < NUM ; k ++) {
                printf("请输入年龄: ")               ;
                scanf("%d" , & array)               ;
                if(array < min) min = array      ;
                else if(array > max) max = array ;
      }
      printf("最小年龄为:%d\n" , min)                ;
      printf("最大年龄为:%d\n" , max)                ;
      system("pause")                              ;
}

zhyyhz 发表于 2020-2-26 22:16:02

没有吧   

zhyyhz 发表于 2020-2-26 22:21:41

#include <stdio.h>
#include <stdlib.h>
#define NUM 10
int max(int n[]);
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int max(int n[])
{
      int i,max = n;
      for(i=0;i<10;i++)
      {
                if(n>max)
                        max=n;//改了这里
      }
      return max;
}

int main(int argc, char *argv[]) {
      int result;
      int array;
      
      printf("请输入年龄:");
      scanf("%d",&array);
         
      result=max(array);
      
      printf("最大年龄为:%d",result);
      return 0;
}

良弓无箭 发表于 2020-2-27 09:38:58

输入的时候只是简单的&array是不行的,必须用一个循环写进去。
#include <stdio.h>
#include <stdlib.h>
#define NUM 10
int max(int array[]);
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int max(int array[])
{
        int i;
        int max=array;
        for(i=0;i<NUM;i++)
        {
                if(max<=array)
                {
                        max=array;
                }
        }
        return max;
}

int main(void)
{
        int i;
      int result;
      int array;
      printf("请输入年龄:");
      for(i=0;i<NUM;i++)
      {
             scanf("%d",&array);
        }
      result=max(array);
      printf("最大年龄为:%d",result);
      return 0;
}

smart.rich 发表于 2020-2-27 10:41:39

良弓无箭 发表于 2020-2-27 09:38
输入的时候只是简单的&array是不行的,必须用一个循环写进去。

为什么函数里写过循环了,调用的时候还要写一次循环呢?

smart.rich 发表于 2020-2-27 10:42:26

zltzlt 发表于 2020-2-26 21:47
https://fishc.com.cn/forum.php?mod=viewthread&tid=52272&extra=page%3D1%26filter%3Dtypeid%26typeid%3D ...

好的,谢谢你,我下次就会发了{:5_106:}

良弓无箭 发表于 2020-2-27 12:12:20

smart.rich 发表于 2020-2-27 10:41
为什么函数里写过循环了,调用的时候还要写一次循环呢?

函数里的循环是用来使用数组里的数的,输入的时候调用循环是为了赋值给数组。只写一个&array不正确。否则无法正常赋值给数组。

smart.rich 发表于 2020-2-27 15:16:19

良弓无箭 发表于 2020-2-27 12:12
函数里的循环是用来使用数组里的数的,输入的时候调用循环是为了赋值给数组。只写一个&array不正确。否则 ...

所以说这两个循环的作用是不一样的对不对,那在调用函数里输入数组都需要用循环吗?

良弓无箭 发表于 2020-2-27 15:24:29

smart.rich 发表于 2020-2-27 15:16
所以说这两个循环的作用是不一样的对不对,那在调用函数里输入数组都需要用循环吗?

这个我还没试过,不好意思,你可以自己试试。

smart.rich 发表于 2020-2-27 15:40:28

良弓无箭 发表于 2020-2-27 15:24
这个我还没试过,不好意思,你可以自己试试。

&#127383;谢谢~
页: [1]
查看完整版本: 函数入门,检查不出来错误了~~