Problem z działaniem pętli do while

0

Mam otóż problem z pętlą do while polega on na tym że po instrukcji if polecenie scanf jest jakby pomijane przez kompilator. Wydaje mi się że wszystko jest wpożądku ale podczas wykonywania programu wyświetlany jest komunikat a następnie program przechodzi do kolejnego komunikatu na początku pętli lub się kończy w zależności od podania liczby. Poniżej wklejam owy lipny program:

#include <stdio.h>
#include <stdlib.h>
int main()
{
	float tab[100],tab2[100],s=0,k;
	int i=0,j=0,z;
	do
	{			
		printf("Podaj liczbe: ");
		scanf("%.2f",&k);
		if(k>0)
		{
			tab[i]=k;
			i++;
		}
		else
		{
			tab2[j]=k;
			j++;
		}
		printf("Jesli chcesz podac kolejna liczbe nacisnij 1");
		scanf("%d",&z);
	}
	while(z==1);	
	printf("THE END");
	return 0;
}

Z góry dziękuję za pomoc.

1

scanf("%f",&k); // i wszystko zacznie działać:
ale zastanów się nad:

char ch=0;

while(true)
  {
   printf("Podaj liczbe (;-koniec): ");
   if(scanf("%f",&k)==1)
     {
      // tum masz liczbę
     }
   else
     {
      ch=getchar();
      if(ch==';') break;
      printf("miała byc liczba\n");
     }
   while(ch!='\n') ch=getchar();
   ch=0;
  }
0

Wielkie dzięki nie zdawałem sobie sprawy że to przez głupie .2 siedze nad tyn bezradny od ponad godziny jeszcze raz dzięki :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1