[solved]Błedy w scanf i switch przy nauce programowania w C

Bash, C, C++, Java, PHP, Ruby, GTK, Qt i wiele innych - wszystko tutaj.
delusion
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 30 lis 2010, 23:52
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

[solved]Błedy w scanf i switch przy nauce programowania w C

Post autor: delusion »

System: Linux Ubuntu 10.10 polski remix
IDE: Eclipse
Kompilator: gcc

Witam,
Uczę się programować w C. Przy kompilacji jednego programu pojawiły się błędy. Oto co pojawiło się w konsoli:

Kod: Zaznacz cały

**** Build of configuration Debug for project Nauka ****

make all 
Building file: ../main.c
Invoking: GCC C Compiler
gcc -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main.d" -MT"main.d" -o"main.o" "../main.c"
../main.c: In function ‘main’:
../main.c:12: warning: format ‘%d’ expects type ‘int *’, but argument 2 has type ‘int’
../main.c:15: error: case label does not reduce to an integer constant
../main.c:16: error: case label does not reduce to an integer constant
make: *** [main.o] Błąd 1
A to jest kod programu:

Kod: Zaznacz cały

/*
 * main.c
 *
 *  Created on: 2011-05-15
 *      Author: delusion
 */
#include <stdio.h>

int main()
{
	int a, szczescie = 7, pech = 13;
	scanf("%d",a);
	switch(a)
	{
	case szczescie: printf("Ta liczba jest szczęśliwa! :)"); break;
	case pech: printf("Ta liczba jest pechowa... :("); break;
	default: printf("Ta liczba nie jest ani szczęśliwa, ani pechowa.");
	}
	return 0;
}
Z góry dziękuję za pomoc.
Ostatnio zmieniony 15 maja 2011, 21:22 przez delusion, łącznie zmieniany 1 raz.
Awatar użytkownika
pax0r
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 10 lut 2011, 14:18
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Błedy w scanf i switch przy nauce programowania w C

Post autor: pax0r »

co do scanf zamiast scanf("%d",a); zrobc scanf("%d",&a); i poczytaj o poniterach w C.
A co do switcha to zamiast zmiennej proponuje uzyc stalych, czyli tam za linijka z #include piszesz

Kod: Zaznacz cały

#define SZCZESCIE 7
#define PECH 13
i w swtich wyglada tak:

Kod: Zaznacz cały

swtich(a)
{
case SZCZESCIE: (...)
case PECH: (...)
delusion
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 30 lis 2010, 23:52
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Błedy w scanf i switch przy nauce programowania w C

Post autor: delusion »

Dzięki za pomoc, a mógłbyś mi dać link do jakiejś strony o tych poniterach, bo nie mogę znaleźć?
Awatar użytkownika
dr0binho
Piegowaty Guziec
Piegowaty Guziec
Posty: 21
Rejestracja: 15 maja 2011, 18:30
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Re: Błedy w scanf i switch przy nauce programowania w C

Post autor: dr0binho »

Kolega miał na myśli pointery, czyli wskaźniki...To o nich masz poczytać. Pozdrawiam.
delusion
Sędziwy Jeż
Sędziwy Jeż
Posty: 30
Rejestracja: 30 lis 2010, 23:52
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86_64

Re: Błedy w scanf i switch przy nauce programowania w C

Post autor: delusion »

Dzięki
Awatar użytkownika
pax0r
Sędziwy Jeż
Sędziwy Jeż
Posty: 70
Rejestracja: 10 lut 2011, 14:18
Płeć: Mężczyzna
Wersja Ubuntu: 11.04
Środowisko graficzne: GNOME
Architektura: x86

Re: [solved]Błedy w scanf i switch przy nauce programowania w C

Post autor: pax0r »

sry za literówkę ;)
ODPOWIEDZ

Wróć do „Programowanie”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości