2016-11-21 4 views
-7

ODDAVG - Напишите программу для приема целых чисел с клавиатуры и найдите среднее значение из 10 нечетных чисел. Если введено четное целое число, проигнорируйте число в ваших расчетах и ​​напечатайте сообщение «Нечетные числа только пожалуйста». Я хочу помочь с этой программой, я пробую ее более одного часа?C++ нечетный Средний

#include "stdafx.h" 
#include <iostream> 
#include <iomanip> 
#include <string> 


using namespace std; 

void Pause()  
{ // function to freeze the screen, waiting for a `keypress` 

    string junk; 
    cout << "\n\n Press enter to continue..."; 
     cin.ignore(); 
    getline (cin,junk); 
    // void functions do not return a value 
} 



int main() 

{ 
    int even=0; 
    int odd=0; 
    int number=0; 
    int eventotal = 0; 
    int oddtotal = 0; 
    int counter = 0; 
    bool done; 
    int i; 

    // get `inpot` 
     cout << "Please enter 10 odd integers: " << endl << endl; 
     cin >> number; 
     cout << endl;  


    // display results 

     if ((number%2 == 0) && (number > 0)) 
     { 
     cout << "odd numbers only please." << endl; 
     } 

     else if ((number > 0) && (i++)) 
     { 
      odd++; 
      oddtotal = oddtotal +number; 

     } 

    while (number!=0)(!done); 
      counter ==10; 
      counter++; 


    int oddavg ;// to store the average of odd numbers 
     if(oddtotal!=0) 
      { 

       oddavg = oddtotal/ odd; 
      } 
      cout << " The average is: " << oddavg << endl; 


// freeze screen 
    Pause(); 
    return (0); 
} 
+2

Вы явно скопировали его откуда-то. Он даже не компилируется со всеми «' »в коде. Что ты уже испробовал ? – Arunmu

+0

Что такое 'while (number! = 0) (! Done);' предполагается делать? –

+0

Положите код, который компилируется .. –

ответ

2

Не просто скопировать код, попробуйте его разобраться. Даже если вы просто пытаетесь пройти класс, «ярлыки» вам не помогут. Вы останетесь один в финале и будете отставать в своем профессиональном развитии в долгосрочной перспективе. Да, даже если ваш майор не является информатикой (говорит по опыту здесь).

Некоторые полезные ресурсы:

C++ functions

C++ loops

C++ recursion

Это последнее, рекурсии, в основном означает функцию, используя себя, и , что является ключом к вашему проблема.

Функция, проверяющая, что число нечетное, должно постоянно называть себя, чтобы оно имитировало «паузу», которую вы хотите. Наличие фактической паузы не реалистично, для ваших целей.

Это, как говорится, анализировать рабочий код для вашей проблемы ниже, это именно то, что вы хотите:

#include <iostream> 
#include <string> 

using namespace std; 

const int NUMBER_COUNT = 10; // pre-defined numbers to input 
int checkOdd(int input, int count); 

int main() 
{ 

int oddNums[10]; 
double avg, sum = 0; 

// Instructions 
cout << "Enter 10 numbers, Odd Numbers Only: "<<endl; 

// Input numbers 
for (int count = 0; count < NUMBER_COUNT; count ++) 
{ 
    cout << "Odd Number #"<<count+1<<": "; 
    int input; 
    cin >> input; 
    oddNums[count] = checkOdd(input, count+1); 
} 

for (int count = 0; count < NUMBER_COUNT; count++) 
{ 
    sum += oddNums[count]; 
} 

// Average 
avg = sum/NUMBER_COUNT; 

// output average 
cout << "Average of Odd numbers: "<< avg <<endl; 

return 0; 
} 


int checkOdd(int input, int count) { 

    if(input % 2== 0) { 
     int newAnswer; 
     cout << input<<" is not an odd number, try again!!"<<endl<<"Odd Number #"<<count<<": "; 
     cin >> newAnswer; 
     return checkOdd(newAnswer,count); 
    } 
    else{ 
     return input; 
    } 
} 

Cheers, upvote & выбрать в качестве ответа, если это помогло.

+0

Благодарим вас за советы. Я куплю это. – Tareq

0

Честно говоря, один час ничего не значит для программирования. Иногда вы закончите его и получите час, чтобы найти простую ошибку.

Что касается ответа на ваш вопрос, я честно считаю, что код у вас намного сложнее, чем должен быть.

Вот мой простой вопрос по простому вопросу.

#include <iostream> 
#include <string> 
using namespace std; 

int main(){ 
    double sum_odd = 0; 
    int input = 0; 
    int count = 0; 
    double ans = 0; 

    //loops until 10 odd numbers have been entered 
    while (count < 10){ 
     cout << "Input 10 odd numbers: "; 
     cin >> input; //assuming user is putting in integers 
     while(input % 2 == 0){ 
      cout << "You have input an even number, please enter an odd number"; 
      cin >> input; 
     } 
     sum_odd += input; 
      count++; 
    } 

    //find the average of the 10 numbers 
    ans = sum_odd/10.0; 
    cout << ans; 
    return 0; 
} 
+0

Благодарим за помощь – Tareq

Смежные вопросы