[c][gcc] kompilacja i uruchomienie programu
-
- Piegowaty Guziec
- Posty: 4
- Rejestracja: 05 kwie 2010, 00:03
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
[c][gcc] kompilacja i uruchomienie programu
Przepisałem z książki prosty program w C (tylko pętla for), skompilowałem go w terminalu (plik pokazał mi się na pulpicie)
gcc prog.c
potem
ls -l a.out
dostałem wynik
chcę uruchomić
./a.out
i nic nie dostaje
próbowałem na wszystkie sposoby co robić?
gcc prog.c
potem
ls -l a.out
dostałem wynik
chcę uruchomić
./a.out
i nic nie dostaje
próbowałem na wszystkie sposoby co robić?
- Struchu
- Serdeczny Borsuk
- Posty: 116
- Rejestracja: 23 mar 2008, 19:58
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
A czy ten program coś wypisuje na konsolę w ogóle? (W sensie: czy w kodzie jest wypisywanie czegoś
).

Ma zielone, kocie oczy...
-
- Piegowaty Guziec
- Posty: 4
- Rejestracja: 05 kwie 2010, 00:03
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
program tak wygląda
#include <stdio.h>
int main()
{
int i;
for(i=0; i<10;i++)
{
puts("Bla");
}
}
robiłem tak jak jest w książce
moze nie mam jakiejś biblioteki?
mam karmelowego koliberka
EDIT:
da się coś z tym zrobić??
#include <stdio.h>
int main()
{
int i;
for(i=0; i<10;i++)
{
puts("Bla");
}
}
robiłem tak jak jest w książce
moze nie mam jakiejś biblioteki?
mam karmelowego koliberka
EDIT:
da się coś z tym zrobić??
-
- Serdeczny Borsuk
- Posty: 108
- Rejestracja: 04 mar 2009, 20:44
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Powiedz coś więcej na ten temat.i nic nie dostaje
Kokos - po prostu, nie zdrabniaj 

-
- Piegowaty Guziec
- Posty: 4
- Rejestracja: 05 kwie 2010, 00:03
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
zamiast wypisania w terminalu słowa hello!! przez program nie dostaje nic
screen
http://img338.imageshack.us/img338/5249/termi.jpg
screen
http://img338.imageshack.us/img338/5249/termi.jpg
-
- Piegowaty Guziec
- Posty: 1
- Rejestracja: 13 mar 2010, 09:14
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: GNOME
- Architektura: x86_64
Odp: [c][gcc] kompilacja i uruchomienie programu
for(i=10; i>10; i++) zamień na for(i=1; i>10; i++)
-
- Piegowaty Guziec
- Posty: 4
- Rejestracja: 05 kwie 2010, 00:03
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.10
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
działa kurde
dzięki
dzięki

-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
Witam mam pytanie czy jak uruchamiam program w terminalu napisany tak jak ten wyżej w c to można go jakoś uruchomić w nowym oknie?
- beluosus
- Zakręcona Traszka
- Posty: 695
- Rejestracja: 01 paź 2006, 15:32
- Płeć: Mężczyzna
- Wersja Ubuntu: inny OS
- Środowisko graficzne: Xfce
- Architektura: x86
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Można kombinować ale ogólnie/uniwersalnie - nie da rady.
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
#include <stdio.h>
int main () {
double s;
double x;
do {
printf ( "%g",s);
scanf ( "%lf", &x );
x=x+s;
printf ( "= %g\n", s );
} while ( x !=0.0 ); {
printf ("Wynik ostateczny= %g\n", s );
return 0;}
Czy ktoś mógłby napisać dlaczego nie działa. s uninitialized in this function w pierwszym wierszu z printf.
To ma być prosty kalkulator ale jeszcze się nie łapę. Mieliśmy poprawić błędy.
int main () {
double s;
double x;
do {
printf ( "%g",s);
scanf ( "%lf", &x );
x=x+s;
printf ( "= %g\n", s );
} while ( x !=0.0 ); {
printf ("Wynik ostateczny= %g\n", s );
return 0;}
Czy ktoś mógłby napisać dlaczego nie działa. s uninitialized in this function w pierwszym wierszu z printf.
To ma być prosty kalkulator ale jeszcze się nie łapę. Mieliśmy poprawić błędy.
- JSokol
- Sędziwy Jeż
- Posty: 67
- Rejestracja: 18 mar 2010, 10:57
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.04
- Środowisko graficzne: Unity
- Architektura: x86_64
- Lokalizacja: Down under
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Pogrubione i wyszczególnione na czerwono otwarcie klamry generuje błędy.tomeks91 pisze:#include <stdio.h>
int main () {
double s;
double x;
do {
printf ( "%g",s);
scanf ( "%lf", &x );
x=x+s;
printf ( "= %g\n", s );
} while ( x !=0.0 ); {
printf ("Wynik ostateczny= %g\n", s );
return 0;}
Co do samego "kalkulatora" podszedłbym do niego zupełnie inaczej więc nie chcę ingerować w Twój pomysł.
Jeżeli zaś chodzi o "pierwszego printf'a", to masz tam także błąd. "%g" odnosi się do zmiennej typu float, a używasz to przy zmiennej typu double (czyli long float). Zamień więc "%g" na "%lg" lub "%lf". Analogicznie usuń ten sam błąd dalej.
Po usunięciu tego "{" i podmianiu z "%g" na "%lg" lub "%lf" daj znać co jeszcze Ci nie pasuje i będziemy myśleć

- Szmitas
- Zakręcona Traszka
- Posty: 572
- Rejestracja: 28 lis 2006, 17:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: Unity
- Architektura: x86
- Lokalizacja: Luboń
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Chyba kompilator jasno się wyraził - zmienna 's' nie została zainicjalizowana a śmieci Ci nie wyświetli w ten sposób. Przypisz do 's' jakąś wartość i spróbuj ponownie, albo po prostu wywal printfa.
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
Nie wiem panowie czy w ten sposób do czegoś dojdziemy, więc zamieszczam wszystko co miałęm do zrobienia:
b) uruchomienie programu kalkulatora sumującego liczby podawane
* z klawiatury (z prostymi bledami kompilacji)
1 #include <stdio.h>
2
3 main() {
4 double s;
5 double x;
6
7 do {
8 printf( "%g + ", s ); /* skasowac jeden z cudzyslowow */
9 sscanf( "%lf", &x ); /* usunac przecinek pom. argumentami */
10 s += x; /* zamienic miejscami x i s */
11 printf( "= %g\n", s ); /* zmienic printf na print */
12 } while( x != 0.0 ); /* usunac ten srednik */
13 printf( "Wynik ostateczny= %g\n", s );
14
15 retun 0;
16 }
17
b) uruchomienie programu kalkulatora sumującego liczby podawane
* z klawiatury (z prostymi bledami kompilacji)
1 #include <stdio.h>
2
3 main() {
4 double s;
5 double x;
6
7 do {
8 printf( "%g + ", s ); /* skasowac jeden z cudzyslowow */
9 sscanf( "%lf", &x ); /* usunac przecinek pom. argumentami */
10 s += x; /* zamienic miejscami x i s */
11 printf( "= %g\n", s ); /* zmienic printf na print */
12 } while( x != 0.0 ); /* usunac ten srednik */
13 printf( "Wynik ostateczny= %g\n", s );
14
15 retun 0;
16 }
17
- JSokol
- Sędziwy Jeż
- Posty: 67
- Rejestracja: 18 mar 2010, 10:57
- Płeć: Mężczyzna
- Wersja Ubuntu: 14.04
- Środowisko graficzne: Unity
- Architektura: x86_64
- Lokalizacja: Down under
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Nieczytelnie i średnio poprawnie, no ale co poradzić. Żeby mocno nie ingerować w kod początkowy (bo nauczyciel może zobaczyć że z armagedonu powstało Eldorado), więc po prostu co nieco pozmieniam i wtedy daj znać czy tak może być:tomeks91 pisze:Nie wiem panowie czy w ten sposób do czegoś dojdziemy, więc zamieszczam wszystko co miałęm do zrobienia:
b) uruchomienie programu kalkulatora sumującego liczby podawane
* z klawiatury (z prostymi bledami kompilacji)
1 #include <stdio.h>
2
3 main() {
4 double s;
5 double x;
6
7 do {
8 printf( "%g + ", s ); /* skasowac jeden z cudzyslowow */
9 sscanf( "%lf", &x ); /* usunac przecinek pom. argumentami */
10 s += x; /* zamienic miejscami x i s */
11 printf( "= %g\n", s ); /* zmienic printf na print */
12 } while( x != 0.0 ); /* usunac ten srednik */
13 printf( "Wynik ostateczny= %g\n", s );
14
15 retun 0;
16 }
17
Kod: Zaznacz cały
#include <stdio.h>
int main()
{
double s=0;
double x;
do{
printf("%lf + ", s);
scanf("%lf", &x);
s+=x;
printf(" = %lf\n", s);
} while(x!=0.0);
printf("Wynik ostateczny = %lf\n", s);
return 0;
}
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
No więc tak jak to na studiach wszystkiego trzeba dowiedzieć się samemu, a ten przykład jest do "przemyślenia". Czy możesz mi jeszcze wyjaśnić o co chodzi z tym średnikiem po while, bo nauczyciel widocznie nie chce by on tam był, czemu wyskakuje błąd jak go tam nie ma.
Według składni while z książek nie powinno go tam być[edit]
Według składni while z książek nie powinno go tam być[edit]
- Szmitas
- Zakręcona Traszka
- Posty: 572
- Rejestracja: 28 lis 2006, 17:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: Unity
- Architektura: x86
- Lokalizacja: Luboń
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
To nie jest pętla while, tylko do ... while - poczytaj o tym.
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
Znów mam kłopot chodzi mi o funkcję z "Język Ansi C" z programu, z rozdziału Tablice znakowe.
Dokładniej jest to funkcja copy:
void copy(char to[], char from[])
{
int i;
i=0;
while((to = from[1] != '\0')
++i;
}
Chodzi mi o to że ta funkcja ma zamieniać wszystkie znaki z tablicy to na te z from (dobrze myśle?) No więc nie rozumiem jak ona to robi skoro jedyną instrukcją jest zwiększanie indeksu c, a moim zdaniem powinno wykonać się coś takiego co jest w nawiasach okrągłych. Jeśli trzeba to mogę napisać cały program, tylko trochę dużo przepisywania dlatego podałem źródło a jest to chyba biblia c jak się zdołałem zorientować.
Dokładniej jest to funkcja copy:
void copy(char to[], char from[])
{
int i;
i=0;
while((to = from[1] != '\0')
++i;
}
Chodzi mi o to że ta funkcja ma zamieniać wszystkie znaki z tablicy to na te z from (dobrze myśle?) No więc nie rozumiem jak ona to robi skoro jedyną instrukcją jest zwiększanie indeksu c, a moim zdaniem powinno wykonać się coś takiego co jest w nawiasach okrągłych. Jeśli trzeba to mogę napisać cały program, tylko trochę dużo przepisywania dlatego podałem źródło a jest to chyba biblia c jak się zdołałem zorientować.
- Szmitas
- Zakręcona Traszka
- Posty: 572
- Rejestracja: 28 lis 2006, 17:38
- Płeć: Mężczyzna
- Wersja Ubuntu: 12.04
- Środowisko graficzne: Unity
- Architektura: x86
- Lokalizacja: Luboń
- Kontakt:
Odp: [c][gcc] kompilacja i uruchomienie programu
Na pewno dobrze to przepisałeś? Bo ja widzę błąd:
Kod: Zaznacz cały
while((to[i] = from[1] != '\0')
www.ubuntu-pomoc.org - tutaj znajdziesz rozwiązanie każdego Twojego problemu.
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
Chcesz zostać Redaktorem ubuntu-pomoc.org? Skontaktuj się ze mną!
-
- Piegowaty Guziec
- Posty: 26
- Rejestracja: 07 paź 2010, 21:04
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: [c][gcc] kompilacja i uruchomienie programu
Nie no oczywiście że i. Ale to po prostu błąd w przepisywaniu. Nadal nie rozumiem tego co wymieniłem wyżej.
-
- Zakręcona Traszka
- Posty: 585
- Rejestracja: 20 kwie 2008, 04:21
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: GNOME
Odp: [c][gcc] kompilacja i uruchomienie programu
Kod: Zaznacz cały
while((to[i] = from[1]) != '\0')
Kod: Zaznacz cały
(to[i] = from[i]) == '\0'
1. skopiuj do to wartość z from
2. porównaj to z NULL ('\0' to NULL) i jeżeli są sobie równe to zakończ pętlę.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości