2014-11-09 3 views
0
//review3 
#include <iostream> 
#include <cstdlib> 
#include <string> 
#include <fstream> 
using namespace std; 

double average; 
int main(int argc, char* argv[]) 
{ 
    int num1 = atoi (argv[1]); 
    int num2 = atoi (argv[2]); 
    int num3 = atoi (argv[3]); 
    average = ((num1 + num2 + num3)/3); 
    cout << average << endl; 
} 

모든 명령 줄 인수의 평균을 계산해야하는 경우이 문제를 해결하는 방법을 모르십니까? 이것이 내가 3 CLA로하는 방법이지만,이 문제에 대해 CLA의 정해진 양을 모른 채 어떻게 할 것인지 확신 할 수 없습니다. 당신이 중앙값을 찾아야하는 경우에 누구가 이것을하는 방법을 알고 있는가?모든 명령 줄 인수를 읽고 평균을 인쇄하는 프로그램을 작성하십시오.

+3

이 혹시 루프에 대해 들어 본 적이 :

다음은 트릭을해야한다, 중간을 얻으려면? –

+0

있습니다. 그것으로 들여다 감사합니다 – BrandonTuley43

+0

이 실패하지 않도록주의하십시오 ... http://blog.codinghorror.com/why-cant-programmers-program/ –

답변

1

아래는 간단한 프로그램입니다.

int sum = 0 ; 
for (int i = 1; i < argc; i++) 
{ 
    sum = sum + atoi(argv[i]) ; //Exclusion of argv[0] is no incidence... 
} 

그럼 당신은 당신이 주요 int argc의 선언에서 합의

+0

대단히 감사합니다. 한 사람이 우리를 위해 배우는 것을 망쳐 서 미안합니다. – BrandonTuley43

+3

@ BrandonTuley43 SO가 프로그래밍 언어를 배우기에 적합한 지 여부는 매우 논쟁의 여지가 있습니다. –

+2

@ πάνταῥεῖ 학습은 당신에게 무언가를 인쇄하도록 요구할 것입니다. 다른 사람들을 학대하는 것 이외의 다른 일을해야합니다. 질문은 질문입니다. 걱정하지 않으시면 – BrandonTuley43

1

함께하고 싶은대로 할 수있는 것은 지정된 인수의 수입니다. for 루프를 사용하여 인수를 반복하고 평균을 계산할 수 있습니다.

// Your includes here 
// ... 

int main(int argc, char* argv[]) 
{ 
    int average = 0; 

    for(int i = 1; i < argc; i++) // argv[0] is the name of your program, so we are skipping it 
    { 
     average += atoi(argv[i]); 
    } 

    average = average/(argc - 1); 
} 
1

argc는 main()에 주어진 인수의 개수를 제공합니다.

argv는 실행 파일의 파일 이름이므로 argv는 0이 아니라 하나가됩니다.

float median; 

// Get a sorted list of the integers 
std:list<int> args; 
for(int i = 1; i < argc; i++) 
{ 
    args.push_back(atoi(argv[i])); 
} 
args.sort(); 

// Extract median from the sorted array of integers 
int middle_index = args.size()/2; 
if (args.size() % 2 == 1) 
{ 
    // For odd number of values, median is middle value 
    median = args[middle_index]; 
} 
else 
{ 
    // For even number of values, median is average of the two middle values 
    median = (args[middle_index-1] + args[middle_index])/2.0; 
} 
+0

이것은 당신이 생각하는대로하지 않습니다. 먼저 디폴트로 생성 된 argc-1 요소를 가진 목록을 만든 다음 argc-1 요소를 추가합니다. 귀하의 목록은 실제로 2 * argc 요소를 포함합니다. –

+0

감사합니다 Étienne, 당신 말이 맞아요. 내 스 니펫을 수정했습니다. –

관련 문제