[C] Tablica, Suma liczb nieparzystych

restqq
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 5 gru 2014, o 13:26
Płeć: Mężczyzna
Lokalizacja: Łomża
Podziękował: 6 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: restqq »

Witam, do programu który wstawiłem poniżej muszę dodać aby te 10 liczb wprowadzanych przez użytkownika zapisywały się w tablicy, oraz takie zabezpieczenie gdy użytkownik zamiast cyfry poda np. literę to pojawi się komunikat "Błąd wpisałeś nieznany znak spróbuj ponownie". Nie wiem czemu program mi pada przy wpisywaniu 8 cyfry, co jest nie tak?

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])

{
int i;
int t[i];
int suma=0;





printf("Wprowadz cyfre:  ");
for (i=0; i<10; i++)
{
scanf ("%d",&t[i]);
if(t[i]%2!=0) suma+=t[i];
}

printf("Suma liczb nieparzystych wynosi: %d ",suma);


  system("PAUSE");
  return 0;
}
Awatar użytkownika
mortan517
Użytkownik
Użytkownik
Posty: 3359
Rejestracja: 6 lis 2011, o 15:38
Płeć: Mężczyzna
Lokalizacja: Krk
Podziękował: 112 razy
Pomógł: 662 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: mortan517 »

Ten program nie ma prawa działać, jeżeli chcesz na sztywno podać wymiar tablicy to musisz to zrobić tak int t[10], a jeżeli ilość liczb ma być podawana przez użytkownika to tablice alokowane dynamicznie.
restqq
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 5 gru 2014, o 13:26
Płeć: Mężczyzna
Lokalizacja: Łomża
Podziękował: 6 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: restqq »

Faktycznie, a w jaki sposób mogę ustawić ten komunikat? if/else? czy pętla while?
Awatar użytkownika
mortan517
Użytkownik
Użytkownik
Posty: 3359
Rejestracja: 6 lis 2011, o 15:38
Płeć: Mężczyzna
Lokalizacja: Krk
Podziękował: 112 razy
Pomógł: 662 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: mortan517 »

Funkcja scanf zwraca ilość poprawnie odczytanych danych. Pokombinuj z czymś typu if(scanf("%d",&t[i])==1).
restqq
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 5 gru 2014, o 13:26
Płeć: Mężczyzna
Lokalizacja: Łomża
Podziękował: 6 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: restqq »

A w jaki sposób mogę wypisać w ciągu np. 1 3 5 7 3 7 itd. liczby nieparzyste wprowadzone przez użytkownika, muszę liczby nieparzyste zapisać w drugiej tablicy i dopiero ją wypisać?
Skrzypu
Użytkownik
Użytkownik
Posty: 1146
Rejestracja: 18 maja 2004, o 22:15
Płeć: Mężczyzna
Lokalizacja: Kraków
Pomógł: 18 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: Skrzypu »

Przed wypisaniem sprawdź czy liczba jest nieparzysta
restqq
Użytkownik
Użytkownik
Posty: 35
Rejestracja: 5 gru 2014, o 13:26
Płeć: Mężczyzna
Lokalizacja: Łomża
Podziękował: 6 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: restqq »

Jednak muszę wyświetlić wszystkie cyfry które wprowadzi użytkownik, zrobiłem to łopatologicznie chyba że ktoś mi powie jak skrócić ten zapis ale chodzi mi teraz o komunikat błędu, co zrobić żeby po komunikacie program już nic nie wyświetlał?

Kod: Zaznacz cały

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])

{
int i;
int t[10];
int suma=0;





printf("Wprowadz cyfre:  ");



if(scanf("%d",&t[i])==1)
for (i=0; i<9; i++)
{

scanf ("%d",&t[i]);
if(t[i]%2!=0) suma+=t[i];


}
else printf("Wpisales nieodpowiedni znak ");


 
printf("Liczby ktore wprowadziles : %d %d %d %d %d %d %d %d %d %d  
 ",t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8],t[9],t[10]);
printf("Suma liczb nieparzystych wynosi: %d ",suma);


  system("PAUSE");
  return 0;
}
dargenn
Użytkownik
Użytkownik
Posty: 16
Rejestracja: 21 sty 2015, o 21:32
Płeć: Mężczyzna
Lokalizacja: Białystok
Pomógł: 3 razy

[C] Tablica, Suma liczb nieparzystych

Post autor: dargenn »

Liczby wypisuj w pętli. Poza tym numeracja indeksów w tablicach zaczyna się od 0, więc jeśli chcesz robić to manualnie to rób to od 0 do 9. Pole t[10] nie istnieje. Proponowałbym napisać kod na nowo, tym razem stosując wcięcia, i myśląc przy każdej linijce co program ma w danym momencie zrobić.
ODPOWIEDZ