Strona 1 z 1

[C] Problem z programem w c

: 5 wrz 2011, o 14:08
autor: ania1002

Kod: Zaznacz cały

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

float dzieci ( int w, int l, int d){
      float y;
      y=(-0./10*w)+(15./100*l)+(2./100*d);
      return y;
      }
int main(void)
{
    int n,i;
    printf("Podaj liczbe badanych kobiet:
");
    scanf("%d",&n);
    float w[n], l[n], d[n];
    printf("Podaj wysztalcenie w latach dla kazdej kobiety:
");
    for(i=0;i<n;i++){
                     scanf("%f",&w[i]);
                     }
                     printf("Podaj wiek kazdej kobiety z przedzialu: 20-40 lat:
");
                     for(i=0;i<n;i++){
                                      scanf("%f",&l[i]); }
                                      

Musze umieścić warunek if za trzecia linijką od końca, który sprawdza czy wczytana kobieta ma lat z przedziału 20-40 lat. Jak to zrobic?

[C] Problem z programem w c

: 5 wrz 2011, o 14:33
autor: sonicwork

Kod: Zaznacz cały

if( "warunek"){
"instrukcje do wypełnienia jeśli warunek spełniony"
}
lub

Kod: Zaznacz cały

if( "warunek"){
"instrukcje do wypełnienia jeśli warunek spełniony"
} else {
"instrukcje do wypełnienia jeśli warunek nie jest spełniony"
}
warunki piszesz 2 jeden określający minimum a drugi maksimum i pomiędzy nimi wstawiasz && co oznacza logiczne "i"

[C] Problem z programem w c

: 5 wrz 2011, o 15:37
autor: ania1002

Kod: Zaznacz cały

printf("Podaj wiek kazdej kobiety z przedzialu: 20-40 lat:
");
                     
                     for(i=0;i<n;i++){
                                      if(l[i]>=20 && l[i]<=40){
                                      scanf("%f",&l[i]);
                                      }
                                      }
Co tu jeszcze trzeba zmienic?

[C] Problem z programem w c

: 5 wrz 2011, o 18:57
autor: sonicwork
to zależy co ci nie działa... ja nie wiem co ty chcesz robić tym programem
przede wszystkim widzę dziwne przypisanie wartości do adresu zmiennej

Kod: Zaznacz cały

scanf("%f",&l[i]);
to celowe czy mylisz wartość prawostronną z lewostronną?

[C] Problem z programem w c

: 5 wrz 2011, o 21:28
autor: ania1002
Ten program ma za zadanie obliczac wydatki w zaleznosci od ilosci dzieci, lat kobiety i dochodow.

[C] Problem z programem w c

: 5 wrz 2011, o 21:38
autor: sonicwork
no dobra ale wraz nie wiem co ci w nim nie działa

[C] Problem z programem w c

: 5 wrz 2011, o 23:38
autor: kod3r
Pokaż cały kod to się zobaczy co jest nie tak, lub treści błędu jeśli takowe są.

[C] Problem z programem w c

: 6 wrz 2011, o 17:16
autor: zedd5
Nie wiem, czy dobrze, ale się kompiluje.
Nie używaj zmiennych (n) do określania rozmiarów tablic. Przydziel pamięć dynamicznie (malloc, free).
Na początek polecam bardziej DevCpp niż CodeBlocks.

Kod: Zaznacz cały

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

float wydatki(int dzieci, int lata, float dochod){
	return (-0.1*dzieci + 0.15*lata + 0.02*dochod);
}

int main(void) {
	int i,n;
	
	printf("Podaj ilosc badanych kobiet:\n");
	scanf("%d",&n);
	
	int *dzieci, *lata;
	float *dochod;

	dzieci = (int*) malloc (n * sizeof(int)); /* przydzielenie pamieci */
	lata = (int*) malloc (n * sizeof(int));
	dochod = (float*) malloc (n * sizeof(float));
	
	printf("Podaj ilosc dzieci dla kazdej kobiety:\n");
	for(i=0;i<n;i++){
		scanf("%d",&dzieci[i]);
	}
	
	printf("Podaj wiek kazdej kobiety w przedziale 20-40 lat\n");
	for(i=0;i<n;i++){
		scanf("%d",&lata[i]);
		if (lata[i] < 20 || lata[i] > 40) { /* jezeli kobieta ma mniej niz 20 lub wiecej niz 40 lat */
			printf("Podaj wiek kobiety z przedzialu od 20 do 40 lat.\n");
			i--; /* obniza 'i', aby wartosc wrowadzic jeszcze raz */
		}
	}
	
	printf("Podaj dochod kazdej kobiety w tys. zl:\n");
	for(i=0;i<n;i++){
		scanf("%f",&dochod[i]);
	}

	printf("\nNr kobiety, ilosc dzieci, wiek, dochody, wydatki:\n\n");
	for(i=0;i<n;i++){
		printf("Nr%d: Dzieci(%d), Wiek(%d), Dochod(%.2f), Wydatki(%.2f)\n", 
			i+1, dzieci[i],lata[i], dochod[i], wydatki(dzieci[i],lata[i],dochod[i]));
	} /* %.2f oznacza liczbe z ulamkiem, z 2 miejscami po przecinku */
	
	free(dzieci); /* zwolnienie pamieci */
	free(lata);
	free(dochod);
	
	system("pause");
	
	return 0;
}


[C] Problem z programem w c

: 6 wrz 2011, o 17:23
autor: Althorion
Dev jest już od dłuższego czasu nie rozwijany, tak więc wybór właśnie tego środowiska nie będzie najlepszym, szczególnie jeśli chcemy programować zgodnie z najnowszym standardem C++0x.

[C] Problem z programem w c

: 6 wrz 2011, o 17:47
autor: sonicwork
ten program jest w C...

na ćwiczeniach podczas studiów pod windows-em używa się właśnie dev


a tak przy okazji gdzie są ostatnie posty napisane przeze mnie i ania1002 ? znikły?


zedd5 twój program ma wadę bo nie mnoży wartości dochodu przez 1000 poza tym jest ok

ja z kolei z tymi "&" się pomyliłem, zbyt dawno nie pisałem programu w C