Czemu to nie działa?

2012-08-10 11:31
0
#include <stdio.h>

int main(void)
{
    float index, i, k, j, p;

    printf("Podaj dwie liczby\n");
    scanf("%f", &index);
    scanf("%f", &i);

    while (index =! 'k')
    {
    printf("Wartosc ich roznicy podzielonej przez ich iloczyn wynosi:\n");
        k = index - i;
        j = index * i;
        p = k / j;
    printf("%f\n", p);
    printf("Podaj kolejne dwie liczby\n");
    scanf("%f", &index);
    scanf("%f", &i);    
    }   
    getchar();

    return 0;
}

Jak na moje oko, powinno działać. Jednak nie działa;/ ktoś wie może czemu?

edytowany 1x, ostatnio: bakłażan9494, 2012-08-10 11:32

Pozostało 580 znaków

2012-08-10 11:35
0
while (index =! 'k')

Porównujesz floata do chara i to jeszcze niepoprawnie (!= zamiast =!).

Pozostało 580 znaków

2012-08-10 11:37
1

A mógłbyś więcej opisać. Bo jak na razie to nic nam to nie mówi. :P

edytowany 1x, ostatnio: leona, 2012-08-10 11:37
za co ten "-1" nie zauważyłem tego co podał @lukasz1235 :) - leona 2012-08-10 11:41

Pozostało 580 znaków

2012-08-10 13:38
sig
0

W warunku While-a "prawie że" (powinno być != a nie =!) porównujesz liczbę (index) do znaku "k". Co prawda k nie jest znakiem tylko jego "numerkiem" w tablicy ASCII ale i tak się takich rzeczy generalnie nie robi. No chyba że w jakiś sposób tymi znakami manipulujesz np w przypadku (de)szyfrowania Cezara. Wtedy można je "legalnie" potraktować jak cyfry.

Pozostało 580 znaków

2012-08-10 18:05
0

No dobra, a jak chce żeby pętla wykonywała się do momentu podania jakiejś litery zamiast liczb zmiennoprzecinkowych to jak byście to napisali?

Pozostało 580 znaków

2012-08-10 18:59
sig

Np while(scanf("%d",&index)) Jak się wczyta liczba to całość będzie "true" czyli się wykona a jak litera (dowolna) to na wskutek błędu (litera zamiast cyfry) będzie "false" i while-a opuści. Przynajmniej u mnie działa w ten sposób.

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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