GRY-Online.pl --> Archiwum Forum

Programowanie w c++ i tablice

07.10.2003
18:26
[1]

Zenedon [ Oi! Boots&Braces Oi! ]

Programowanie w c++ i tablice

Mam pytanie jaka jest komenda usuwania komórek z tablicy. Chce aby tablica kończyła się tam gdzie zaczynają się elem. o wartości zero. Dzięki za pomoc!

07.10.2003
19:07
[2]

_Robo_ [ Generaďż˝ ]

Napisz w jaki sposob zadeklarowales tablice i jaka tablice. Moze styknie realloc()

07.10.2003
20:35
[3]

Zenedon [ Oi! Boots&Braces Oi! ]

#include <iostream.h>
#include <iomanip.h>

int stolec;
char TablicaLiczbowaChar[20];
char TablicaLiczbowaOdwrotnie[20];
char TablicaLiczbowaInt[20];

int main()

cout << "Podaj Liczebę:";
cin >> TablicaLiczbowaChar;
cout << "Wynik To";

for ( int j = -1; j < 20 ; j++) ‹
TablicaLiczbowaOdwrotnie[j] = TablicaLiczbowaInt[20-j];


for ( int i = 0; TablicaLiczbowaOdwrotnie[ i ] != '\0'; ++i ) ‹
cout << TablicaLiczbowaOdwrotnie[ 1 ];


cin >> stolec;
return 0;



Ok z tą tablicą to już wiem ale teraz mam problem bo wartość TablicaOdwrotnie nic nie zawiera! Nic się nie pojawia poza pustym polem. Może ktoś wie o co chodzi?

07.10.2003
20:51
[4]

Quetzalcoatl [ Konsul ]

w drugiej petli for masz:
TablicaLiczbowaOdwrotnie[ 1 ];
zamiast:
TablicaLiczbowaOdwrotnie[ i ];

07.10.2003
20:53
[5]

Ode [ Centurion ]

for ( int j = -1; j < 20 ; j++) ‹
TablicaLiczbowaOdwrotnie[j] = TablicaLiczbowaInt[20-j];


czyli za pierwszym obrotem probuje podstawic za TablicaLiczbowaOdwrotnie[-1] a tablca jest indeksowana od 0 ...
moze w tym problem

no i jeszcze tu : for ( int i = 0; TablicaLiczbowaOdwrotnie[ i ] != '\0'; ++i ) ‹
cout << TablicaLiczbowaOdwrotnie[ 1 ];
po prostu i zamiast 1 => cout << TablicaLiczbowaOdwrotnie;

07.10.2003
20:58
[6]

Zenedon [ Oi! Boots&Braces Oi! ]

Te wszystkie zmiany co proponujecie to odwrócenie desperackich prób sprawienia cudu przeze mnie. Wkleiłem poprostu bez poprawienia kodu.

07.10.2003
21:10
smile
[7]

Quetzalcoatl [ Konsul ]

#spoil

oki, po tym co Ode napisal zajarzylem co ten program ma robic :)))))
sprobuj tak:

main()

char tablica[20];
char c=0;int i=0;

//pobieraj znaki, az pojawi sie enter (kod 10 lub 13) lub sie tablica skonczy
while( (c=getc() ) != 10 && c!=13 && i<20 )
‹ tablica=c; i++; ›

//teraz i pokazuje ci na miejsce *tuz po* ostatnim wprowadzonym znaku
//wiec wystarczy wyswietlic od i-1 w dol, do zera

printf("\n");//nowa linia
i--;
while( i>0 )
‹ printf("%c",tablica); ›

return;


90% poprawnosci, nie pamietam jaki #include trzaeba dac, chyba "stdio.h" albo "conio.h"
nie kojarze w czym siedzialo printf(), chociaz powinno byc juz dolaczone i nie powinno byc problemu bez #includa

#endspoil

07.10.2003
21:14
[8]

Quetzalcoatl [ Konsul ]

zapomnialem ze forum ma te swoje wstawki od kursywy :)))

powinno byc

tablica[ i ] = c; i++;

- forum usunelo [ i ] bo nie dalem spacji :P

07.10.2003
21:27
[9]

Zenedon [ Oi! Boots&Braces Oi! ]

Coś z tym getc() jest pokręcone bo chce do niej jakiś parametr. Poza tym funkcja miałaprzyjmować liczbę z klawiatury a następnie zamieniać ją "tył na przód":)

07.10.2003
21:35
[10]

Quetzalcoatl [ Konsul ]

getc(stdin) albo getch() - niedopisalem h ;)

a co do liczby - "pfh". jak uzywasz cin/cout z iostream.h to tez sobie mozesz wpisac "456hhhfsdrig," zamiast liczby i twoj program to przelknie, tak samo jak wersja z getch() i printf().

jezeli ma to byc liczba i nic innego - do c!=13&&i<20 dopisz:
&&c>"0"&&c<"9"

07.10.2003
21:43
[11]

Zenedon [ Oi! Boots&Braces Oi! ]

Program po kompilacj pokazuje same @ :)

07.10.2003
21:47
[12]

Zenedon [ Oi! Boots&Braces Oi! ]

znaczy jak się liczbe wstuka i zatwierdzi enterem.

07.10.2003
21:59
[13]

Quetzalcoatl [ Konsul ]

heh, znowu zjadlem - tym razem '=' i 'i--" eh..
zmien ostatnia petle na:


while( i>=0 )
‹ printf("%c",tablica[ i ]);i--; ›

07.10.2003
22:58
[14]

Zenedon [ Oi! Boots&Braces Oi! ]

Działa dzięki ale czy mógłbyś mi powiedzieć dlaczego moja wersja nie działa?

07.10.2003
23:36
smile
[15]

Hansvonb [ Pretorianin ]

To jest ta drobna różnica pomiędzy C a C++ (którego chciałeś nadużyć :)

08.10.2003
16:06
[16]

Zenedon [ Oi! Boots&Braces Oi! ]

a mianowicie?

08.10.2003
17:52
[17]

Zenedon [ Oi! Boots&Braces Oi! ]

Quetzalcoatl --> A poza wszystkim program(na razie) ma za zadanie odwrócić liczbę dwójkową wprowadzoną przez użytkownika i zapisać ją w tablicy a program napisany przez ciebie wyświetla ją w formnie odwrócenej.

08.10.2003
18:28
[18]

Hansvonb [ Pretorianin ]

Zendon - czy jesteć pewien że metoda cin spowoduje prawidłowe wypełnienie tablicy ?

a poza tym planowałeś wczytać do jednej zmiennej

cin >> TablicaLiczbowaChar;
cout << "Wynik To";


a przepisac z drugiej

for ( int j = -1; j < 20 ; j++) ‹
TablicaLiczbowaOdwrotnie[j] = TablicaLiczbowaInt[20-j];



na przyszłość proponuję więcej przyglądania się programom

08.10.2003
18:57
[19]

Zenedon [ Oi! Boots&Braces Oi! ]

Hansvonb --> Tą zmianę zrobiłem (głupio wiem) po tym jak za nic nie mogłem sprawić by to cholerstwo działało.
I odwołuje to do quetzalcoatla bo już wykombinowałem jak to zrobić.

© 2000-2024 GRY-OnLine S.A.