Program sprawdzający czy istnieje para takich samych liczb

0

Siemanko!

Mam problem z programem w języku C, który prosi użytkownika o podanie liczb (maksymalnie stu), a następnie sprawdza czy wśród nich jest para jednakowych liczb. Problem pojawia się w sprawdzaniu warunku. Nie wyświetla poprawnie wyniku. Wpiszę np trzy liczby 1,2,1 i po wpisaniu pierwszej liczby wyświetla się "Dwie liczby sa rowne.", po wpisaniu drugiej "Nie ma rownych liczb. Nie ma rownych liczb.", a po trzeciej "Dwie liczby sa rowne."

Bardzo proszę Was o pomoc.

#include <stdio.h>

int main(){

    int n;                             //ilosc liczb do wczytania podana przez uzytkownika
    int i,j;                        	//liczniki
    int liczby[100];                //liczby podane przez uzytkownika

                                    	//wczytywanie danych
    printf("Podaj ile liczb calkowitych chcesz wpisac: ");
    while(scanf("%d",&n)!=1||n>100||getchar()!='\n'){
        printf("Bledne dane. Wpisz jeszcze raz.");

        char znak=getchar();
        while(znak!='\n')
            znak=getchar();
    }

    printf("Podaj liczby:\n");
    for(i=0;i<n;i++){
        while(scanf("%d",&liczby[i])!=1||getchar()!='\n'){
            printf("Bledne dane. Wpisz jeszcze raz.");

            char znak=getchar();
            while(znak!='\n')
                znak=getchar();
        }

                                    //sprawdzanie czy jest para
        for(j=0;j<=n-1-i;j++){
            if(liczby[j]==liczby[j+i]){
                printf("Dwie liczby sa rowne.\n");
                break;
            }
            else
                printf("Nie ma rownych liczb.\n");
        }
    }

    printf("\nKoniec programu.\n");
    return 0;   
} 
1

Bo porównujesz z jeszcze nie wprowadzonymi pozycjami.

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