Аргумент командной строки второй по величине число - программа C - PullRequest
0 голосов
/ 31 августа 2018
#include<stdio.h>
#include<conio.h>

void main()
{
int a[50];
int n,i,large,s_large;
clrscr();

printf("\n Enter number of elements: ");
scanf("%d",&n);

printf("\n Enter the elements: ");
for(i=0;i<n;i++)
{
    scanf("%d",&a[i]);
}

large=s_large=a[0];

for(i=1;i<n;i++)
{
    if(large<a[i])
    {
        s_large=large;
        large=a[i];
    }
    else if(s_large<a[i] && a[i]!=large)
    {
        s_large=a[i];
    }
}

printf("\n The Second Largest Element in the given Array: %d", s_large);
getch();
}

Выше приведен рабочий код для определения второго по величине числа в c. Я новичок в аргументе командной строки. Поэтому, пожалуйста, помогите мне преобразовать этот пост в аргумент командной строки.

1 Ответ

0 голосов
/ 31 августа 2018

Вам необходимо использовать argc и argv для аргументов командной строки в c. Аргументы командной строки находятся в массиве argv - argv[1], argv[2] etc. и количество аргументов находится в argc.

Вы выполняете программу, как показано ниже.

./exe 1 2 4 6 3 5
 In this case `argc` will have `7` and argv will have as following
 arg[0]= exe,arg[1] = 1,arg[2] = 2,arg[3] = 4,arg[4] = 6,arg[5] = 3 and arg[6] = 5.

Ваш код будет выглядеть ниже.

#include <stdio.h>
#include <conio.h>
#include <limits.h>

int main(int argc, char *argv[])
{
   int i=0,num=0,large=INT_MIN, s_large=INT_MIN;

  printf("Number of arguments: %d\n", argc);
   //argv[0] is the program name
  for(i=1; i<argc; i++)
  {
     if(sscanf(argv[i], "%d", &num) !=1)
      break; //Not an integer

     printf("%d\n", num);
     if(large<num)
     {
        s_large=large;
        large=num;
     }
     else if(s_large<num && num !=large)
     {
       s_large=num;
     }

   }

   printf("\n\nThe Largest Number is %d",s_large);

   getch();
   return 0; 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...