2013-11-19, 23:38
  #1
Medlem
Har skrivit en kod för att få ut medelvärdet utav 10 valfria siffror, pluggar programmering på distans och har hållit på med c++ i några dagar

nu vill läraren att jag ska använda mig av en vektor istället ? om jag inte fattat det helt fel är det samma sak som array ? dvs så man slipper skriva ut alla "num"

han skrev även att jag ska använda mig av denna headern

float medel(int v[], int n)

vet inte riktigt hur jag skall göra nu, någon som kan hjälpa mig ?

min kod:

int main()
{

int num1, num2, num3, num4, num5, num6, num7, num8, num9, num10;


float average;


cout<<"välkommna till programmet, skriv in 10 valfria positiva tal";
cin>>num1;
cin>>num2;
cin>>num3;
cin>>num4;
cin>>num5;
cin>>num6;
cin>>num7;
cin>>num8;
cin>>num9;
cin>>num10;


average = (float)(num1+num2+num3+num4+num5+num6+num7+num8+nu m9+num10)/10.0);

cout<<"medelvärdet av de 10 talen är"<<average<<endl;

system("pause");

return 0;
}
Citera
2013-11-19, 23:43
  #2
Medlem
int main()
{
std::vector<int> values;
int temp;
while (std::cin >> temp)
values.push_back(temp);

int sum = std::sum(values.begin(), values.end());
std::cout << "Medelvärde: " << double(sum)/values.size() << std::endl;

return 0;
}
Citera
2013-11-19, 23:44
  #3
Medlem
Uran233s avatar
float medel(int v[], int n)
{
float total;
for(int i=0;i<n;i++)
total+=v[i];
return total / ((float) n);
}
Citera
2013-11-20, 01:05
  #4
Medlem
Kod:
int main()
{
    int num[10];
    float avarage=0.0;
    cout << "skriv in 10tal\n";
    
    for(int i=0;i<10;i++)
    {
        cin >> num[i];
        avarage+=((float)num[i]/10);
    }
    
    cout << "medelvärde: " << avarage;
    return 0;
}
Citera
2013-11-20, 01:10
  #5
Medlem
Citat:
Ursprungligen postat av MaryJaneInMeBrain
han skrev även att jag ska använda mig av denna headern

float medel(int v[], int n)

Konstig funktionssignatur om du ska använda en vector. Funktionen tar ju en pekare till en array. Och float använder man väl bara för lagring, när man behöver spara plats.
Citera
2013-11-20, 07:01
  #6
Medlem
Goto10s avatar
Vektor är den matematiska termen för array. Universitetslärarna borde lära sig att använda ordet array eller fält i samband med programmering. Speciellt snurrigt blir det ju när man i C++ har datastrukturen std::vector.
TS kan vara ganska säker på att läraren menar array och inte std::vector.
Citera
2013-11-20, 12:52
  #7
Medlem
Citat:
Ursprungligen postat av MaryJaneInMeBrain
Kod:
int num1, num2, num3, num4, num5, num6, num7, num8, num9, num10;

Kod:
const int nNums = 10;
int nums[nNums];

Citat:
Ursprungligen postat av MaryJaneInMeBrain
Kod:
cin>>num1;
cin>>num2;
cin>>num3;
cin>>num4;
cin>>num5;
cin>>num6;
cin>>num7;
cin>>num8;
cin>>num9;
cin>>num10;

Kod:
for (int i = 0; i != nNums; ++i) {
    cin >> nums[i];
}

Citat:
Ursprungligen postat av MaryJaneInMeBrain
Kod:
float average;
average = (float)(num1+num2+num3+num4+num5+num6+num7+num8+num9+num10)/10.0);
cout<<"medelvärdet av de 10 talen är"<<average<<endl;

Kod:
cout << "medelvärdet av de " << nNums << " talen är " << medel(nums, nNums) << endl;

Citat:
Ursprungligen postat av MaryJaneInMeBrain
Kod:
system("pause");

Min åsikt är att det är användarens frihet (och ansvar) att välja om ett programs fönster ska stanna kvar efter körning. Det här fungerar dessutom bara på Windows och gör programmet icke-portabelt. Lär dig hur man kör program istället: http://www.google.se/search?q=command+window+disappears
Citera
2013-11-21, 00:58
  #8
Medlem
F.ö. behöver du göra din vektor i funktionsparameterlistan call-by-reference, annars är den call-by-value (endast för arrayer detta INTE behövs).
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in