Suma liczb o numerach parzystych i nieparzystych

Dział z pytaniami o absolutne podstawy programowania w C# (dla początkujących).

Moderator: xxSlayeRxx

Suma liczb o numerach parzystych i nieparzystych

Sponsor

Sponsor
 

Suma liczb o numerach parzystych i nieparzystych

Postprzez Linkj » Wt maja 27, 2014 1:47 pm

Witam, mam problem z zadaniem: "Napisz funkcje, która znajduje sumę elementów o numerach parzystych oraz sumę elementów o numerach nieparzystych pewnej tablicy"

To moje wypociny, problem w tym, ze dla nieparzystych sume pokazuje ogromna, a dla parzystych rowną 0, niezaleznie od wprowadzonych liczb
Kod: Zaznacz cały
# include <stdio.h>

int main()
{
   int n, i, x;
   int sumaP=0;
   int sumaNP=0;
   printf ("Podaj ilosc liczb: ");
   scanf ("%d", &n);
   int liczby[n];
   for (i=0; i<n; i++)
   {
      printf ("\nPodaj %d liczbe:", i+1);
      scanf ("%d", &liczby[i]);
   }
   for (i=0; i<n; i++);
   {
      x=(i+1)%2;
      if (x=0)
      {
         sumaP=sumaP+liczby[i];
      }
      else
      {
         sumaNP=sumaNP+liczby[i];
      }
   }
   printf ("\n\n__________________________________________ \n\n");
   printf ("Suma liczb parzystych wynosi: %d \n", sumaP);
   printf ("Suma liczb nieparzystych wynosi: %d", sumaNP);
   getch ();
   return 0;
}
Linkj
New member
 
Posty: 5
Dołączył(a): Wt maja 27, 2014 1:41 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez xxSlayeRxx » Wt maja 27, 2014 1:56 pm

1. to jest c# a nie cpp ;D

po 2
if (x=0)

= jest rpzypisaniem,
== jest porownaniem
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Linkj » Wt maja 27, 2014 2:05 pm

A co tu jest charakterystycznego z cpp? Program ma być w c#. Dzięki za ==, poprawione, tylko teraz dla parzystych wyświetla ogromną liczbe, a dla nieparzystych 0, ;_;
Linkj
New member
 
Posty: 5
Dołączył(a): Wt maja 27, 2014 1:41 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Linkj » Wt maja 27, 2014 2:11 pm

Nieważne, właśnie się dowiedziałem że Ci C# to nie to samo, pomimo tego ktoś pomoże??
Linkj
New member
 
Posty: 5
Dołączył(a): Wt maja 27, 2014 1:41 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez xxSlayeRxx » Wt maja 27, 2014 3:23 pm

for (i=0; i<n; i++); <- usun ;

x=(i+1)%2; -< czemu tu jest i+1 a nie samo i?
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Linkj » Wt maja 27, 2014 4:02 pm

W zadaniu chodzi o liczby o określonych numerach (parzyste/nieparzyste) => jest i+1, bo zakładam, że numery liczb zaczynają się od 1 (pierwsza, druga, trzecia...)

Wrzuciłem drugą pętle do pierwszej jak poradziłeś i działa ;)) , chociaż nie wiem dlaczego nie chciało chodzić z dwoma pętlami (pomimo faktu, że była niepotrzebna)
Dzięki za pomoc! :)
Linkj
New member
 
Posty: 5
Dołączył(a): Wt maja 27, 2014 1:41 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Eldier » Wt maja 27, 2014 4:44 pm

Slayerowi chodziło żebyś usunął średnik na końcu fora. Ale jak przeniosłeś do jednej też będzie dobrze. Jak chcesz koniecznie od 1 to zrób:
Kod: Zaznacz cały
for (i=1; i<=n; i++)
Eldier
Member
 
Posty: 41
Dołączył(a): Pt gru 20, 2013 5:34 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Linkj » Wt maja 27, 2014 4:48 pm

Pomyłka wyszła na dobre, bo jest krócej ;) ;)
a jak zmienię na i=1; i<=n to będę musiał przekombinować liczba[i], w nich numery idą od 0, z ciekawości sprawdziłem liczba[i-1] nie działa,
Dzięki jeszcze raz za poświęcony czas ;)
Linkj
New member
 
Posty: 5
Dołączył(a): Wt maja 27, 2014 1:41 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Eldier » Śr maja 28, 2014 12:08 pm

Myślałem, że jak przerzuciłeś do jednej pętli to wyrzuciłeś tablice.
Jeżeli nie korzystasz dalej z tych liczb i chcesz mieć tylko sumę liczb parzystych i nieparzystych to zrób tak:
Kod: Zaznacz cały
   int liczba;
   for (i=1; i<=n; i++)
   {
      printf ("\nPodaj %d liczbe:", i);
      scanf ("%d", &liczba);
      if (liczba%2==0)
      {
         sumaP=sumaP+liczba;
      }
      else
      {
         sumaNP=sumaNP+liczba;
      }

   }


Zaoszczędzisz w ten sposób trochę pamięci oraz operacji.
W przypadku tak małego programu nie zauważysz różnicy, ale od razu staraj się w miarę optymalnie pisać.

Pozdrawiam

Ps.
Kod pisany z palca, mogą być jakieś drobne błędy.
Eldier
Member
 
Posty: 41
Dołączył(a): Pt gru 20, 2013 5:34 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez xxSlayeRxx » Śr maja 28, 2014 1:39 pm

Eldier nei zrozumiales zadania

liczby[1] NP
liczby[2] P
liczby[3] NP
liczby[4] P
liczby[5] NP
liczby[6] P

wystarczy zamienic if (liczba%2==0) na if (i%2==0)
xxSlayeRxx
Member
 
Posty: 661
Dołączył(a): Pt lip 08, 2011 10:24 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Postprzez Eldier » Śr maja 28, 2014 3:30 pm

Szczerze mówiąc nawet go nie czytałem ;p myślałem że chodzi o sumę liczb parzystych i nieparzystych.
Eldier
Member
 
Posty: 41
Dołączył(a): Pt gru 20, 2013 5:34 pm

Re: Suma liczb o numerach parzystych i nieparzystych

Sponsors

Sponsor
 


Powrót do Newbie

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot], Google Adsense [Bot] i 6 gości