[C] Sumowanie liczb w tablicy jednowymiarowej

jabluszko
Użytkownik
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

Post autor: jabluszko »

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..
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.
ravgirl
Użytkownik
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

Post autor: ravgirl »

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 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.
jabluszko
Użytkownik
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

Post autor: jabluszko »

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.
ravgirl
Użytkownik
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

Post autor: ravgirl »

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.
jabluszko
Użytkownik
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

Post autor: jabluszko »

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?
ravgirl
Użytkownik
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

Post autor: ravgirl »

Przede wszystkim, jestem dziewczyną
Jasne, mogę Ci pomóc, ale na pewno nie napiszę gotowca
jabluszko
Użytkownik
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

Post autor: jabluszko »

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?

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.
Awatar użytkownika
jarzabek89
Użytkownik
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

Post autor: jarzabek89 »

Kod: Zaznacz cały

char n;
int liczby[n];
printf ("podaj wielkość tablicy :");
scanf ("%d",&n);  
Cztery linijki cztery błedy.
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^^
jabluszko
Użytkownik
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

Post autor: jabluszko »

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?
ravgirl
Użytkownik
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

Post autor: ravgirl »

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ę malloc()
jabluszko
Użytkownik
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

Post autor: jabluszko »

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;
ravgirl
Użytkownik
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

Post autor: ravgirl »

Podaj cały program, bo tak to ciężko stwierdzić czego brakuje. Jaki masz błąd?
jabluszko
Użytkownik
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

Post autor: jabluszko »

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
Awatar użytkownika
Vardamir
Użytkownik
Użytkownik
Posty: 1913
Rejestracja: 3 wrz 2010, o 22:52
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 6 razy
Pomógł: 410 razy

[C] Sumowanie liczb w tablicy jednowymiarowej

Post autor: Vardamir »

Jakiego IDE używasz?
jabluszko
Użytkownik
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

Post autor: jabluszko »

dev c++ 4.9.9.2
ODPOWIEDZ