寻找从标准输入第二个最大的元素,而无需使用数组 [英] Find 2nd largest element from stdin without using an array

查看:97
本文介绍了寻找从标准输入第二个最大的元素,而无需使用数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 #包括LT&;&stdio.h中GT;诠释主(){
    INT I,M1,M2,N,NUM;
    看跌期权(\\ n);
    scanf函数(%d个,&安培; N);
    对于(i = 0; I< N;我++){
         scanf函数(%D,试验#);
         如果(我== 0){
              NUM = M1 = 2;
         }
         如果(NUM> M1){
              M2 = M1;
              M1 = NUM​​;
         }否则如果(NUM> 2){
              M2 = NUM​​;
         }
     }
    返回0;
}

我的标准输入: -950 -588 -169 -187 -445 400 -1

我得标准输出: -169 但它的显示标准输出: \\ n

请注意:我想不阵列来解决这个问题。


解决方案

  / *程序发现的第二大数字,而不使用数组* /
        主要()
        {
         INT NUM,大型= 0,slarge = 0,I = 0;
         clrscr();
         的printf(输入号码:);
         而(ⅰ小于10)
         {
          scanf函数(%D,试验#);
          如果(我== 0)
          {
          大= NUM​​;
          }
          否则,如果(NUM>大)
          {
           slarge =大;
           大= NUM​​;
          }
          否则,如果(NUM> slarge)
          {
           slarge = NUM​​;
          }
          我++;
         }
         的printf(大型数:%d,大);
         的printf(\\ n第二大=%d个,slarge);
         残培();
         返回0;
        }

#include<stdio.h>

int main() {
    int i, m1, m2, n, num;
    puts("\n");
    scanf("%d",&n);
    for(i = 0; i < n; i++) {
         scanf("%d", &num);
         if(i == 0) {
              num = m1 = m2;
         }
         if(num > m1) {
              m2 = m1; 
              m1 = num; 
         } else if(num > m2) {
              m2 = num;
         }
     }
    return 0;
}

my stdin: -950 -588 -169 -187 -445 400 -1

I have to get stdout: -169 but its showing stdout: \n

Note: I want to solve this problem without arrays.

解决方案

/* Program to find the second largest number without using array */
        main()
        {
         int num,large=0,slarge=0,i=0;
         clrscr();
         printf("Enter the number:");
         while(i<10)
         {
          scanf("%d",&num);
          if(i==0)
          {
          large=num;
          }
          else if(num>large)
          {
           slarge=large;
           large=num;
          }
          else if(num>slarge)
          {
           slarge=num;
          }
          i++;
         }
         printf("Large number:%d",large);
         printf("\nSecond large=%d",slarge);
         getch();
         return 0;
        }

这篇关于寻找从标准输入第二个最大的元素,而无需使用数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆