tablica n elementowa, c

0

staram się zrobić program, który ma tablicę n-elementową, w której wpisuję liczby i pokazuje mi tylko większe od 10 i mniejsze od 0 (tylko pętla). Niestety coś jest źle

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

int main(int argc, char *argv[]) 
{
	int tab[20];
	int n, i;
	
	printf("ile elementow ma liczyc tablica: ");
	scanf("i%", &n);
	
	for(i=0; i<n; i)
	{
		printf("wpisz liczby: ");
		scanf("i%",&tab[i]);
    }
    
    for(i=0; i<n; i++)
    {
    if (tab[i]>10);
    if (tab[i]<0);
    }
    
    printf("liczby, ktore wpisales :%i ", tab[i]);
    
	system("pause");	
	return 0;
}
0

Wiesz w ogóle co robisz ? Czytałeś w ogóle o tablicach ? Raczej nie.
malloc albo new/delete[to w c++]

0

Na razie deklarujesz tablicę o stałym rozmiarze i chcesz do niej wczytać tyle elementów ile poda użytkownik? Tak nie przejdzie. Musisz to zrobić za pomocą malloc w celu zaalokowania pamięci dla tylu elementów ile sobie użytkownik zażyczy. Dopiero potem wczytujesz do takiej tablicy elementy, na koniec wypisujesz te, które są > 10 lub < 0.
Malloc'iem posługuje się tak:

int* tab = (int*)malloc(size * sizeof(int)); // gdzie size to rozmiar wczytany np. od użytkownika.

// po przypisaniu już elementów wypisujesz te, które cię interesują
for (int i = 0; i < n; i++)
{
    if (tab[i] > 10 || tab[i] < 0)
         printf("%i", tab[i]);
}

//  ta linijka:
// printf("liczby, ktore wpisales :%i ", tab[i]);
// jest błędna, w tym miejscu `i` już nie istnieje, nie wiem co ty tu chciałeś wytworzyć.
0

Czy nie lepiej zamiast tablicy zaimplementować sobie listę i wczytywać do struktury tyle danych ile sobie użytkownik zażyczy bez większego wysiłku?

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