c语言 多组测试 N个数找最大和最小 我是新手,请用简单的函数解答,谢谢!

发布网友

我来回答

3个回答

热心网友

#include<stdio.h>
int main()
{
    int N,i,a,max=0,min=0;
    
    while(scanf("%d",&N)!=EOF)
    {
        for(i=1;i<=N;i++)
        {
           scanf("%d",&a);
            
            if(i == 1) max = min = a;
            
            if(a>max)
                {max=a;}
            if(a<min)
                {min=a;}

        }
    }
    printf("max=%d, min=%d\n",max,min);
}

热心网友

你这程序 得设结束符  例如n=0时表示测试结束等等 不然 不能正常判断输入结束 


如果是测试N组数据这种不定量的题目     需要使用链表或者其他的类似的数据结构  每次 输入一组数据 后 保存最大最小值  讲指针指向下一节点 直到 不再输入  再进行输出  参考我给你写的程序

#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>

struct REC{
 int max;
 int min;
 REC *next;
};
int main()
{   struct REC *head,*p,*temp;
 int n,i; 
 int x,max,min;
  p=(struct REC*)malloc(sizeof(struct REC));
  p->next=NULL;
 head=p;
    while(scanf("%d",&n)!=EOF && n!=0) 
 {   
  for(i=1;i<=n;i++) 
  { 
      scanf("%d",&x);
      if(i == 1) max = min = x;
 
      if(x>max)
          {max=x;}
      if(x<min)
          {min=x;}
  } 
  temp=(struct REC*)malloc(sizeof(struct REC));
  temp->max=max;
  temp->min=min;
  temp->next=NULL;
  p->next=temp;
  p=temp;
 } 
 p=head->next;
 while(p){
  printf("max = %d\n",p->max);
  printf("min = %d\n",p->min);
  p=p->next;
 }
 return 0;
}

热心网友

你的题目没有说清要测试几组数据。
即使是不确定的话,也要有一个标志,例如N=0或负数时表示测试结束。
不然的话,程序不能正常结束运行的。

热心网友

#include<stdio.h>
int main()
{
    int N,i,a,max=0,min=0;
    
    while(scanf("%d",&N)!=EOF)
    {
        for(i=1;i<=N;i++)
        {
           scanf("%d",&a);
            
            if(i == 1) max = min = a;
            
            if(a>max)
                {max=a;}
            if(a<min)
                {min=a;}

        }
    }
    printf("max=%d, min=%d\n",max,min);
}

热心网友

你这程序 得设结束符  例如n=0时表示测试结束等等 不然 不能正常判断输入结束 


如果是测试N组数据这种不定量的题目     需要使用链表或者其他的类似的数据结构  每次 输入一组数据 后 保存最大最小值  讲指针指向下一节点 直到 不再输入  再进行输出  参考我给你写的程序

#include <stdio.h>
#include <stdlib.h>
#include<malloc.h>

struct REC{
 int max;
 int min;
 REC *next;
};
int main()
{   struct REC *head,*p,*temp;
 int n,i; 
 int x,max,min;
  p=(struct REC*)malloc(sizeof(struct REC));
  p->next=NULL;
 head=p;
    while(scanf("%d",&n)!=EOF && n!=0) 
 {   
  for(i=1;i<=n;i++) 
  { 
      scanf("%d",&x);
      if(i == 1) max = min = x;
 
      if(x>max)
          {max=x;}
      if(x<min)
          {min=x;}
  } 
  temp=(struct REC*)malloc(sizeof(struct REC));
  temp->max=max;
  temp->min=min;
  temp->next=NULL;
  p->next=temp;
  p=temp;
 } 
 p=head->next;
 while(p){
  printf("max = %d\n",p->max);
  printf("min = %d\n",p->min);
  p=p->next;
 }
 return 0;
}

热心网友

你的题目没有说清要测试几组数据。
即使是不确定的话,也要有一个标志,例如N=0或负数时表示测试结束。
不然的话,程序不能正常结束运行的。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com