Wątek przeniesiony 2017-01-21 13:18 z C/C++ przez kq.

Dlaczego nie wyświetla mi znaku?

0

Napisz program, który ze standardowego wejścia wczytuje liczbę naturalną n i znak z, a następnie wypełnia jednowymiarową tablicę losowymi n liczbami naturalnymi, a następnie sprawdza czy ten znak z znajduje się w tej tablicy i wypisuje tę informację na standardowym wyjściu.
Nabazgralem cos takiego i dalej mi nie wyswietla, nie wiem gdzie jest blad, bo jestem dopiero poczatkujacy w C.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(int argc, char* argv[])
{
    int n, i, j;
    int tab[1000];
    int znak;
    printf("Podaj wielkosc tablicy n: ");
    scanf("%i", &n);
    printf("podaj znak ktory ma sie znajdowac w tablicy: ");
    scanf("%i", &znak);
    srand(time(NULL));
    for (i = 0; i <= n; ++i)
    {
        tab[i] = rand() % 1000;
        printf("%i\n", tab[i] = i);
    }

    if (znak = tab[i])
    {
        printf("jest: %i\n", znak);
    }
    else
    {
        printf("nie ma: %i\n", znak);
    }

    system("PAUSE");
    return 0;
}
0
scanf("%i", &znak);

Dla znaku powinno być %c

for (i = 0; i <= n; ++i)

Off-by-one. Pętla wykona się n+1 razy.

printf("%i\n", tab[i] = i);

Nadpisujesz wartość tab[i]. Nie wiem co tu chciałeś osiągnąć

if(znak = tab[i])

Przypisanie zamiast porównania. Próbujesz porównać wyłącznie jeden znak (i to poza tablicą). Do wyszukania użyj pętli.

Formatowanie już poprawiłem. Jak sam nie umiesz ⟶ http://format.krzaq.cc

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