Filtrowanie liczb większych od 0 w tablicy

Filtrowanie liczb większych od 0 w tablicy
MU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

Witam mam problem odnośnie tablicy, muszę zliczyć liczbę elementów tablicy większych od zera i je wyświetlić. np. "Tablica ma 3 elementy wieksze od zera:

Próbowałem to zrobić ale za bardzo nie mam pomysłu nawet jak

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

	
	const double tab1[3] = {1, 4, 5.67}; //stala tablica

int main(int argc, char *argv[]) {
	
	printf("Tab = [%.0lf, %.0lf, %.2lf]\n", tab1[0], tab1[1], tab1[2]); //wyswietlenie stalej tablicy
	
	int i;
	double size;
	
	double *tab2 = calloc(size , sizeof(double));   //tablica dynamiczna
	
	do {
		fflush(stdin);
		printf("Podaj rozmiar tablicy : ");     //uzytkownik wypisuje rozmiar tablicy
	}while(!scanf("%lf", &size));
	
	
	for(i=0;i<size;i++){
		do{
			fflush(stdin);
		printf("tab[%d] = ",i);                   //uzytkownik wypisuje dane do tablicy
		}while(!scanf("%lf", &tab2[i]));
	}
	printf("------------------------------------------------\n");
	for(i=0;i<size;i++){
		printf("tab[%d] = %.2lf\n", i, tab2[i]);     //wypisanie danych
	}
	
	//printf("%lf",tab2[i]);
	
	free(tab2);
	return 0;
}
KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
2

double size

WUT?

double size;
double *tab2 = calloc(size , sizeof(double)); //tablica dynamiczna

WUT2?

MU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

widzialem na prezentacji size_t size w callocu jednak zabardzo nie wiedzialem co to jest wiec uzylem zmiennej size

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
1

widzialem na prezentacji size_t size w callocu jednak zabardzo nie wiedzialem co to jest wiec uzylem zmiennej size

size_t to typ a ty pchasz tam zmienna typu double i to jeszcze niezainicjalizowana

MU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 8
0

tylko jak wpisuje double *tab2 = calloc(size_t , sizeof(double)); to wypisuje mi błąd. A jak dalem tam zmienna size to zadzialalo

AK
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3561
0

@KamilAdam:

Czepiasz się
tak w tych googlach było (używam świadomie liczby mnogiej)

Żadne dwie linie nie są jednego autora.

ZK
  • Rejestracja: dni
  • Ostatnio: dni
0

masz kod podstawowy. Resztę se rozwiń jak ci się podoba

Kopiuj
int main()
{
    double numbers[]={1,2,0,0,4,0,6,7,22.3,44.2};
    int size = sizeof(numbers) / sizeof(double);

    for(int i=0; i<size; ++i){
        if(numbers[i]>0){
            printf("%f\n",numbers[i]);
        }
    }

    return 0;
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.