[C] Błędy przy kompilacji programów


(Witekk932) #1

Witam, mam dwa programy;

  1. Wylicza średnią arytmetyczną

  2. Analizuje czy dana liczba jest parzysta, przy zerze kończy analizę

Kod 1.

int main() 

{

int i, n; 

float x, suma; 


printf("Program do obliczania redniej arytmetycznej\n");

printf ("Podaj ilosc liczb n = ");

scanf("%f", &n);


if(n>0); 

{ 

	suma=0.0;

	for(i=0; i
	{

		printf("Podaj liczb %d: ", i+1);

		scanf("%f",&x);

		suma=x;

	} 

	printf("srednia wynosi %8.3f", suma/n);

}

else 

	printf("Brak liczb do policzenia sredniej\n"); 

return 0;

}

/code]


Kod 2.

[code]

int main()

{

int n;


do

{

	printf(podaj liczbe:);

	scanf("%d",&n);

	if((n&2)=0);

		printf("liczba jest nieparzysta",n);

	else

		printf("liczba jest parzysta",n);

}while(n==0)


return 0;

Nie wiem dlaczego ale wyrzuca mi błędy. Proszę o pomoc, pilne.


(Fiołek) #2
  • nie powinno go tu być(przez niego kompilator nie ma do czego odnieść else)

(to nie błąd składniowy, ale nie będzie działać tak, jakbyś chciał)

Brak deklaracji zmiennej n.

  • brak cudzysłowu
  • nie powinno go być(to samo co wyżej)
  • tu, i w następnym printf parametr n jest nadmiarowy
  • brak średnika(i chyba != powinno być, żeby ta pętla była bardziej użyteczna)

To tak na szybko.


([alex]) #3

Brak formatowania i bajzel ze średnikami w obu przypadkach.


(Witekk932) #4

Ok, pierwszego pogramy już nie wywala, ale nie działa jak powinien, tzn, ciągle chce aby podać mu liczbę(w pętli for). W drugim wywala mi błąd przy if.


([alex]) #5

ino , a kryształową kule aby zgadnąć jak teraz twoje kody wyglądają to na jaki adres wysłałeś?


(Witekk932) #6

W drugim programie chciałbym żeby było to zrobione z “mod” ale gdy wpisuje “n mod 2 =0” i tak jest błąd.

int main()

{

int i, n;

float x, suma;


printf("Program do obliczania redniej arytmetycznej\n");

printf ("Podaj ilosc liczb n = ");

scanf("%f", &n);


if(n>0)

{

   suma=0.0;

   for(i=0; i
   {

      printf("Podaj liczb %d: ", i+1);

      scanf("%f",&x);

      suma+=x;

   }

   printf("srednia wynosi %8.3f", suma/n);

}

else

   printf("Brak liczb do policzenia sredniej\n");

return 0;

}
int main()

{

int n;


    do

    {


       printf("podaj liczbe:");

       scanf("%d",&n);

       if((n&2)=0)

          printf("liczba jest nieparzysta");

       else

          printf("liczba jest parzysta");

    }while(n!=0);


    return 0;

}

(Drobok) #7

Pobierasz float do miennej int, więc ciężko ci będzie cokolwiek z tą zmienną zrobić :stuck_out_tongue: Wyświetl ją sobie i zobacz ile przejść pętli będzie :stuck_out_tongue:

mod jest w pascalu, w c masz %, poza ty, = przypisuje == porównuje


([alex]) #8

W C/C++ operator mod zapisywany jako %

czyli:

if(n%2) printf("liczba jest nieparzysta");

else printf("liczba jest parzysta");

lub:

printf("liczba jest %sparzysta",n%2?"nie":"");