[C] Sumowanie liczb w tablicy jednowymiarowej
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
witam,
w tym roku zaczalem studia informatyczne zaoczne. mialem ogromne zaleglosci z matematyki jednak udalo mi sie je nadrobic. z pozostalymi przedmiotami nadazam na biezaco. niestety zupelnie nie znalazlem czasu przez to wszystko na programowanie. za tydzien mam kolokwium z jezyka c na ktore musze przygotowac zadanie oraz edytowac je tak jak kaze to zrobic prowadzacy.
tresc zadania:
Mam napisac program, ktory znajdzie mi taka liczbe w tablicy, ktorej suma liczb po jej lewej stronie bedzie rowna sumie liczb po jej prawej stronie. jezeli po lewej lub po prawej stronie nie ma zadnej liczby to trzeba ta strone przyjac jako zero. ewentualnie jakis komunikat jezeli takowej liczby nie bedzie.
zdazylem ogarnac ledwie podstawy podstaw i w tym momencie to zadanie jest ponad moje sily..
w tym roku zaczalem studia informatyczne zaoczne. mialem ogromne zaleglosci z matematyki jednak udalo mi sie je nadrobic. z pozostalymi przedmiotami nadazam na biezaco. niestety zupelnie nie znalazlem czasu przez to wszystko na programowanie. za tydzien mam kolokwium z jezyka c na ktore musze przygotowac zadanie oraz edytowac je tak jak kaze to zrobic prowadzacy.
tresc zadania:
Mam napisac program, ktory znajdzie mi taka liczbe w tablicy, ktorej suma liczb po jej lewej stronie bedzie rowna sumie liczb po jej prawej stronie. jezeli po lewej lub po prawej stronie nie ma zadnej liczby to trzeba ta strone przyjac jako zero. ewentualnie jakis komunikat jezeli takowej liczby nie bedzie.
zdazylem ogarnac ledwie podstawy podstaw i w tym momencie to zadanie jest ponad moje sily..
Ostatnio zmieniony 4 sty 2015, o 13:01 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
-
- Użytkownik
- Posty: 171
- Rejestracja: 29 gru 2013, o 17:41
- Płeć: Kobieta
- Lokalizacja: Pruszków
- Pomógł: 64 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Może pokaż co już udało Ci się napisać?
Potrzebujesz tablicy określonego rozmiaru (a może to użytkownik ma określić rozmiar?), oznaczmy go \(\displaystyle{ N}\).
W pętli, najprościej
Można to zoptymalizować, zapamiętując bieżącą sumę i dodając/odejmując kolejne elementy, zamiast dodawać wszystko kilka razy w wewnętrznych pętlach.
Potrzebujesz tablicy określonego rozmiaru (a może to użytkownik ma określić rozmiar?), oznaczmy go \(\displaystyle{ N}\).
W pętli, najprościej
for
, przechodzisz po wszystkich elementach tablicy od \(\displaystyle{ 0}\) do \(\displaystyle{ N}\). W każdej iteracji musisz zsumować elementy na lewo od bieżącego elementu - czyli takie o mniejszym indeksie - oraz elementy na prawo - czyli o większym indeksie. Następnie wystarczy je porównać i jeśli są równe to wypisujemy komunikat i kończymy.Można to zoptymalizować, zapamiętując bieżącą sumę i dodając/odejmując kolejne elementy, zamiast dodawać wszystko kilka razy w wewnętrznych pętlach.
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
jedyne co udalo mi sie wymodzic to kalkulator nie dokonca sprawwny. caly czas go przerabialem, nie zapisywalem wszystkich jego wersji, ucze sie na razie tylko metoda prob i bledow na jego podstawie. tego zadania nie ruszylem. moge go zamiescic by pokazac ze cokolwiek robilem w kierunku nauki C?
prowadzacy nie okreslil tego o co pytasz dal wolna reke. i tak na kolokwium trzeba bd cos przerobic a ze wzgledu na brak dosiadczenia nie wiem co jest lepszym pomyslem i dzieki czemu pozniej bd mi latwiej cos przerobic.
prowadzacy nie okreslil tego o co pytasz dal wolna reke. i tak na kolokwium trzeba bd cos przerobic a ze wzgledu na brak dosiadczenia nie wiem co jest lepszym pomyslem i dzieki czemu pozniej bd mi latwiej cos przerobic.
-
- Użytkownik
- Posty: 171
- Rejestracja: 29 gru 2013, o 17:41
- Płeć: Kobieta
- Lokalizacja: Pruszków
- Pomógł: 64 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Kalkulator wydaje mi się nieco bardziej rozbudowanym zadaniem niż to, które tutaj opisałeś. I raczej na osobny wątek Spróbuj może jednak zacząć programować to zadanie o tablicach, zobaczysz że to nie takie trudne.
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
mam jeszcze dzisiaj troche pracy. liczylem na gotowca, ale w sumie tchnales we mnie troche nadziei ta wypowiedzia o kalkulatorze. jezeli starczy mi czasu zajme sie tym dzisiaj, jezeli nie, na pewno jutro. poprowadzisz mnie w razie problemow?
-
- Użytkownik
- Posty: 171
- Rejestracja: 29 gru 2013, o 17:41
- Płeć: Kobieta
- Lokalizacja: Pruszków
- Pomógł: 64 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Przede wszystkim, jestem dziewczyną
Jasne, mogę Ci pomóc, ale na pewno nie napiszę gotowca
Jasne, mogę Ci pomóc, ale na pewno nie napiszę gotowca
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
bardzo przepraszam :p
trzymam za słowo
-- 3 sty 2015, o 22:43 --
w czym problem? chce by uzytkownik wybieral wielkosc tablicy. czy jezeli chce zeby n bylo liczba to powinienem zastosowac int n?
trzymam za słowo
-- 3 sty 2015, o 22:43 --
w czym problem? chce by uzytkownik wybieral wielkosc tablicy. czy jezeli chce zeby n bylo liczba to powinienem zastosowac int n?
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
char n;
int liczby[n];
printf ("podaj wielkość tablicy :");
scanf ("%d",&n);
system("PAUSE");
return 0;
}
Ostatnio zmieniony 4 sty 2015, o 13:01 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
Powód: Poprawa wiadomości.
- jarzabek89
- Użytkownik
- Posty: 1337
- Rejestracja: 11 lis 2007, o 21:36
- Płeć: Mężczyzna
- Lokalizacja: Gdańsk
- Podziękował: 4 razy
- Pomógł: 181 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Kod: Zaznacz cały
char n;
int liczby[n];
printf ("podaj wielkość tablicy :");
scanf ("%d",&n);
Po pierwsze od kiedy rozmiar tablicy może być znakiem. Po drugie tak nie można deklarować tablicy dynamicznej. Po trzecie %d nie używa się z charem. Po czwarte podajesz wartosc \(\displaystyle{ n}\) po zadeklarowaniu tablicy^^
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
jezeli dobrze zrozumialem to zamiast char powinno byc int? wtedy z %d sprawa zalatwiona. o co chodzi z ta tablica dynamiczna i deklaracja tablicy przed podaniem n?
-
- Użytkownik
- Posty: 171
- Rejestracja: 29 gru 2013, o 17:41
- Płeć: Kobieta
- Lokalizacja: Pruszków
- Pomógł: 64 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Tak, char to zmienna znakowa, a int to zmienna będąca liczbą całkowitą.
Chodzi o to, że deklarujesz tablicę w momencie, w którym wartość n jest jeszcze nieznana - przed pobraniem jej od użytkownika. Powinieneś zadeklarować ją po pobraniu wartości n. Oraz sama deklaracja jest zła - w C w ten sposób inicjuje się jeżeli n byłoby stałą. Spójrz np. tu: w skrócie: potrzebujesz wykorzystać funkcję
Chodzi o to, że deklarujesz tablicę w momencie, w którym wartość n jest jeszcze nieznana - przed pobraniem jej od użytkownika. Powinieneś zadeklarować ją po pobraniu wartości n. Oraz sama deklaracja jest zła - w C w ten sposób inicjuje się jeżeli n byłoby stałą. Spójrz np. tu: w skrócie: potrzebujesz wykorzystać funkcję
malloc()
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
co tu nie gra? nie zrozumialem oczywiscie do konca materialu z wikibooks, ale to juz pomine.
Kod: Zaznacz cały
int rozmiar;
int *tablica;
printf ("podaj rozmiar tablicy :");
scanf ("%d",&rozmiar);
tablica = (int*) malloc(rozmiar * sizeof(*tablica)); //pierwsza gwiazdka (*) w funkcji malloc() to operator mnozenia
tablica[0] = 1;
-
- Użytkownik
- Posty: 171
- Rejestracja: 29 gru 2013, o 17:41
- Płeć: Kobieta
- Lokalizacja: Pruszków
- Pomógł: 64 razy
[język C] tablica jednowymiarowa
Podaj cały program, bo tak to ciężko stwierdzić czego brakuje. Jaki masz błąd?
-
- Użytkownik
- Posty: 39
- Rejestracja: 3 sty 2015, o 18:55
- Płeć: Mężczyzna
- Lokalizacja: WW
- Podziękował: 15 razy
[C] Sumowanie liczb w tablicy jednowymiarowej
Kod: Zaznacz cały
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int rozmiar;
int *tablica;
printf ("podaj rozmiar tablicy :");
scanf ("%d",&rozmiar);
tablica = (int*) malloc(rozmiar * sizeof(*tablica));
tablica[0] = 1;
system("PAUSE");
return 0;
}
błąd: C:Users710DesktopcMakefile.win [Build Error] [Projekt2.exe] Error 1