har gjort ett program som räknar ut maxvärdet på en vektor med 10 element med en funktion. Hur skall jag göra samma program men att räkna ut medelvärdet
jo jag tänkte nått sånt här men jag får inte in det i funktionen
int sum = 0;
int average = 0;
int array[10] = {1,2,3,4,5,6,7,8,9,10};
for (int i = 0; i < 10; ++i)
sum+=array[i];
average = sum/10;
cout<<"Average:"<<average;
Det du har använt i din kod är en array. Ta istället en titt på c++'s vektor som finns i standardbibliotek, det är mycket enklare att skicka med denna till en funktion. Börja med att ta en titt på denna sidan http://en.cppreference.com/w/cpp/container/vector, finns exempel på hur du använder den längst ner.
Du har ju själv svarat på denna fråga i din första post.
Använd inte SweClockers för att få färdiga svar till skoluppgifter. Om du upptäcker att du inte förstår hur du ska lösa en uppgift så finns nästan alltid svaret i anteckningar och material som du fått under kursen. Inte mycket mening att gå en programmeringskurs om man bara vill ta sig igenom den utan att lära sig något.
Det du vill göra är att flytta all kod som gör själva beräkningen till en egen funktion, och sedan anropa denna från main-funktionen:
#include <iostream>
using namespace std;
int main()
{
const int size = 10;
int array[size] = {1,2,3,4,5,6,7,8,9,10};
// Anropa funktion calculateMean och skicka med variabeln "array" som parameter.
// Funktionen skickar tillbaka ett värde som alltså är medelvärdet av talen. Detta returnerade värde är det du skriver ut.
float average = calculateAverage (array);
cout << "Average: " << average;
}
// Någon annanstans skapar du funktionen calculateAverage som tar en parameter av typen int[] och returnerar ett värde av typen float.
float calculateAverage (int[] array)
{
float sum = 0;
for (int i = 0; i < size; ++i)
sum += array[i];
float average = sum/size;
// Istället för att direkt skriva ut resultatet så skickar du tillbaka resultatet till main-funktionen.
return average;
}
Det du har använt i din kod är en array. Ta istället en titt på c++'s vektor som finns i standardbibliotek, det är mycket enklare att skicka med denna till en funktion. Börja med att ta en titt på denna sidan http://en.cppreference.com/w/cpp/container/vector, finns exempel på hur du använder den längst ner.
När du säger "enklare", hur menar du då? Jag ser inte varför det skulle bli enklare bara för att vi blandar in std::vector i leken. På vilket sätt blir koden nedan enklare när man skickar en vector istället för adressen till din array?