ďťż

Ładny brzuch

Muszę zapisać n liczb do tablicy cyfry, a następnie je zsumować.

1. Jak zdefiniować tablicę o rozmiarze podanym przez użytkownika?

int rozmiar; cout << '\n' << "Podaj ilosc czynnikow:" << '\n'; cin >> rozmiar; int liczby[rozmiar];

Resztę zrobiłem, więc posta edytuję.
Użytkownik Lupinek edytował ten post 04 styczeń 2007, 00:11


1. chyba tak, tylko nie pamietam czy nie trzeba dac -1 (kiedys byly o to boje choc imho nie trzeba)
2. cin >> liczby[i]; lub jak nie bedzie dzialac daj pomocnego int x i tak:
cin >> x;
liczby[i] = x;
3. od razu przy wczytywaniu mozesz sumowac - dodajesz ciagle do jakies zmiennej (np. int n)

Wielkie dzięki.
Jednak postanowiłem usunąć tablicę (ale dobrze wiedzieć, jak zapisywać pobrane dane do niej...).
Ale teraz program działa i chodzi bez zarzutu.
Podsunąłeś mi pewien pomysł...


Muszę zapisać n liczb do tablicy cyfry, a następnie je zsumować.

1. Jak zdefiniować tablicę o rozmiarze podanym przez użytkownika?

int rozmiar; cout << '\n' << "Podaj ilosc czynnikow:" << '\n'; cin >> rozmiar; int liczby[rozmiar];

Dobrze?


Bardzo zle!!! Kompilator w trakcie kompilacji musi znac rozmiar tablicy! Chyba ze uzyjesz operatora new albo malloc lub calloc.



Ale skompilował; a mógłbyś mi wyjaśnić, jak mam to zrobić?

Ech... I jeszcze jedno pytanko: co ma zrobić programista, gdy użytkownik zamiast kropki postawi przecinek w ułamku dziesiętnym (na przykład: 123,1 zamiast akceptowanego przez C++ 123.1)?

Chodzi o to, że w ten sposób nie powinno się tworzyć tablicy. Tak naprawdę to sam już nie wiem jak z tym jest. Kiedyś była na forum mocna wymiana zdań na ten temat... może uda Ci się ją odnaleźć. A jeżeli chodzi o new to://ważny początek int* liczby = new int[rozmiar]; liczby[0]=2; std::cin >> liczby[1]; //itp. normalne działania na tablicy tylko, że tym razem dynamicznej //i ważny koniec delete [] liczby;
I ostatnia kwestia względem przecinka. Wczytuj od użytkownika nie liczbę tylko string, usuń i pozamieniaj zbędne znaki, a następnie zamień na liczbę ;)
Użytkownik reVis edytował ten post 04 styczeń 2007, 00:45

Wczytuj od użytkownika nie liczbę tylko string, usuń i pozamieniaj zbędne znaki, a następnie zamień na liczbę ;)
Panowie, powoli... :) Teoretycznie to łatwe jest, ale gorzej z praktyką... Podaj przykładowy kod programu, w którym po wpisaniu liczby np.: 14,25 zostałaby ona zamieniona na 14.25.

Jeszcze jedno... niby umiem sortować liczby, ale gorzej z literami... pomożecie?


Panowie, powoli... :) Teoretycznie to łatwe jest, ale gorzej z praktyką... Podaj przykładowy kod programu, w którym po wpisaniu liczby np.: 14,25 zostałaby ona zamieniona na 14.25.

Jeszcze jedno... niby umiem sortować liczby, ale gorzej z literami... pomożecie?
1.#include <iostream> using namespace std; int main() { char c[] = "14,25"; int i=strlen(c); while(i--)if(c[i]==',')break; c[i]='.'; float f = atof(c); cout<< f <<endl; system("pause"); }2. Pojedynczy znak to liczba 0-255.


Ale skompilował; a mógłbyś mi wyjaśnić, jak mam to zrobić?
się skompilował tylko dlatego że gcc ma rozszerzenie które pozwala na coś takiego, normalnie coś takiego nie jest dopuszczalne

Cyrkiel, udało się! :) Trochę pozmieniałem i już działa :) Jeju, dzięki! Jesteście fantastyczni ;-)
Użytkownik Lupinek edytował ten post 04 styczeń 2007, 12:41
A ja zamienić float na char?

char s[256]; float f = 12.34; sprintf(s,"%.2f",f);.2 oznacza 2 miejsca po przecinku

A czy da się zrobić tak, żeby liczba miejsc po przecinku była zmienna? Nie bardzo odpowiada mi wynik 8.00 albo 12.30...
:D

hmm ja nie jestem pewien bo nie korzystałem z tej funkcji ale może sobie przygotować taki string wcześniej np. w std::stringu i zamienić tym sprintfem int'a który chcesz żeby był ilością miejsc po przecinku i odpowiednie miejsce w tym std::stringu podmienił a potem tylko c_str()

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •