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!
_Robo_ [ Generaďż˝ ]
Napisz w jaki sposob zadeklarowales tablice i jaka tablice. Moze styknie realloc()
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?
Quetzalcoatl [ Konsul ]
w drugiej petli for masz:
TablicaLiczbowaOdwrotnie[ 1 ];
zamiast:
TablicaLiczbowaOdwrotnie[ i ];
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;
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.
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
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
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":)
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"
Zenedon [ Oi! Boots&Braces Oi! ]
Program po kompilacj pokazuje same @ :)
Zenedon [ Oi! Boots&Braces Oi! ]
znaczy jak się liczbe wstuka i zatwierdzi enterem.
Quetzalcoatl [ Konsul ]
heh, znowu zjadlem - tym razem '=' i 'i--" eh..
zmien ostatnia petle na:
while( i>=0 )
printf("%c",tablica[ i ]);i--;
Zenedon [ Oi! Boots&Braces Oi! ]
Działa dzięki ale czy mógłbyś mi powiedzieć dlaczego moja wersja nie działa?
Hansvonb [ Pretorianin ]
To jest ta drobna różnica pomiędzy C a C++ (którego chciałeś nadużyć :)
Zenedon [ Oi! Boots&Braces Oi! ]
a mianowicie?
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.
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
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ć.