• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak zastosować pętlę while?

0 głosów
592 wizyt
pytanie zadane 1 kwietnia 2020 w C i C++ przez Atman Użytkownik (810 p.)

Mam zadanie na oceny studenckie, które już wykonałem. Jednak mam jeszcze dodatkowe polecenie polegające na dopisaniu fragmentu programu, który wyświetla na konsoli wszystkie oceny zapisane w tablicy wraz z liczbą porządkową oceny i muszę to zrobić stosując pętlę while. Umiem to zrobić za pomocą pętli for ale na while nie mam pojęcia. Proszę o pomoc.

 

#include<iostream>

using namespace std;

int main()
{

int liczba;
float oceny;
int i;

cout<<"Podaj liczbe wprowadzanych ocen: ";
cin>>liczba;
cout<<endl;

float *tab;
tab=new float[liczba];

  
      if ((liczba<1)&&(liczba>20))
     {
      cout<<"Podano nieprawdilowa liczbe ocen.";

      system("PAUSE");
      return 0;
     }
	  cout<<"Mozliwe oceny uzyskane przez studenta: "<<endl<<endl;

	  cout<<"2.0"<<endl;
	  cout<<"3.0"<<endl;
	  cout<<"3.5"<<endl;
	  cout<<"4.0"<<endl;
	  cout<<"4.5"<<endl;
	  cout<<"5.0"<<endl;
	  cout<<"5.5"<<endl<<endl;

    for (i=0; i<liczba; i++)
    {

     cout<<"Podaj ocene studenta nr "<<i+1<<" : ";
     cin>>tab[i];

     if ((tab[i]!=2.0)&&(tab[i]!=3.0)&&(tab[i]!=3.5)&&(tab[i]!=4.0)&&(tab[i]!=4.5)&&(tab[i]!=5.0)&&(tab[i]!=5.5))
      {

      cout<<"Podana ocena jest nieprawidlowa.";
      system("PAUSE");
      return 0;
      }

    }

  
   system("PAUSE");

   return 0;

}

 

2 odpowiedzi

0 głosów
odpowiedź 1 kwietnia 2020 przez tangarr Mędrzec (155,140 p.)

Pętla while(warunek) jest równoznaczna pętli for(;warunek;)

int i=0; // wyciągamy iterator do zmiennej poza pętlą
while (i<liczba)
    {
 
     cout<<"Podaj ocene studenta nr "<<i+1<<" : ";
     cin>>tab[i];
 
     if ((tab[i]!=2.0)&&(tab[i]!=3.0)&&(tab[i]!=3.5)&&(tab[i]!=4.0)&&(tab[i]!=4.5)&&(tab[i]!=5.0)&&(tab[i]!=5.5))
      {
 
      cout<<"Podana ocena jest nieprawidlowa.";
      system("PAUSE");
      return 0;
      }

    i++; // Inkrementacja iteratora
    }

 

0 głosów
odpowiedź 1 kwietnia 2020 przez DragonCoder Nałogowiec (36,500 p.)

Petla whie dziala podobnie do for, tylko ze sam musisz wykonac iteracje w niej, tzn

while (warunek) {
    //kod
    //iteracja
}

Przyklad

while (i<10) {
   std::cout << i << "\n";
   i++;
}

Wiec zamiast tego 10 mozesz wrzucic wielkosc tablicy, bo robisz dynamiczna alokacje przez pointer i zwiekszasz sobie i. Wiadomo musisz te i zadeklarowac i przypisac wartosc poczatkowa 0.

i nie zapomnij od zwolneiniu pamicii tej tablicy przez delate ;)

Podobne pytania

0 głosów
1 odpowiedź 557 wizyt
pytanie zadane 16 listopada 2017 w C i C++ przez kacper1445 Mądrala (5,070 p.)
0 głosów
3 odpowiedzi 2,344 wizyt
pytanie zadane 11 października 2018 w C i C++ przez Vitall Początkujący (400 p.)

93,599 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,083 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...