[C] Wczytywanie liczby i wyświetlanie sześcianu

Mauser
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 maja 2014, o 09:23
Płeć: Mężczyzna
Lokalizacja: Jawor

[C] Wczytywanie liczby i wyświetlanie sześcianu

Post autor: Mauser »

Witam. Nie mogę poradzić sobie z napisaniem programu: "Należy wczytać ciąg liczb rzeczywistych. Wczytywanie należy zakończyć, gdy pojawi się liczba ujemna. Dla każdej wczytanej liczby należy obliczyć jej sześcian. Numer kolejny liczby, tę liczbę oraz jej sześcian należy wyświetlić na ekranie." Z tego co wiem, po wprowadzeniu każdej liczby należy wyświetlić jej sześcian i kolejną liczbę, natomiast po wpisaniu liczby ujemnej program ma się zatrzymać. Z góry dziękuje za pomoc!
Ostatnio zmieniony 14 maja 2014, o 09:51 przez Afish, łącznie zmieniany 1 raz.
Powód: Staraj się lepiej dobierać nazwy tematów, tak by wskazywały o czym jest treść zadania.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C] Potrzebny program

Post autor: Ser Cubus »

To może najpierw pokaż co masz
Mauser
Użytkownik
Użytkownik
Posty: 2
Rejestracja: 14 maja 2014, o 09:23
Płeć: Mężczyzna
Lokalizacja: Jawor

[C] Wczytywanie liczby i wyświetlanie sześcianu

Post autor: Mauser »

Na chwilę obecną mam taki kod: #include <stdio.h>

Kod: Zaznacz cały

int main()
{
    
    
 float R, S;


 while(R>=0)
  {
  	printf("wprowadz liczbe rzeczywista 
");
 	scanf("%f", &R);
  	S=R*R*R*R;
  	printf("Sześcian wynosi %.2f 
",S );
  	
  }
 
 system("pause");
}

Nie potrafię dodać do niego zliczania wprowadzonych liczb :/
Ostatnio zmieniony 14 maja 2014, o 18:21 przez yorgin, łącznie zmieniany 1 raz.
Powód: Używaj tagów [code] [/code]
lemoid
Użytkownik
Użytkownik
Posty: 199
Rejestracja: 24 maja 2012, o 23:36
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 5 razy
Pomógł: 30 razy

[C] Wczytywanie liczby i wyświetlanie sześcianu

Post autor: lemoid »

użwaj [ code ] do pokazywania kodu.

zainicjuj przed pętlą zmienną, np:

Kod: Zaznacz cały

 int count = 1  (albo 0, jeżeli uznajemy indeksowanie od zera)
a na koniec pętli (lub na początku, wedle uznania) inkrementuj wartość count.

I wydaję mi się, że sześcian liczby liczy się trochę inaczej.
kalwi
Użytkownik
Użytkownik
Posty: 1931
Rejestracja: 29 maja 2009, o 11:58
Płeć: Mężczyzna
Lokalizacja: Warszawa
Podziękował: 145 razy
Pomógł: 320 razy

[C] Wczytywanie liczby i wyświetlanie sześcianu

Post autor: kalwi »

1. Formatowanie kodu, bo do tego każdy programista się przyczepi
2. tak jak kolega wyżej napisał, na dzień dobry

Kod: Zaznacz cały

int count = 1;
i na koniec pętli while

Kod: Zaznacz cały

count++;
3. Można też zrobić dynamiczną tablicę, aby wpisać tyle liczb ile się chce i na koniec wyświetlić wszystkie (pewnie nie zrozumiesz kodu, ale warto się nad tym dłuższą chwilę zastanowić).

Kod: Zaznacz cały

#include <stdio.h>
#include <locale.h>
#include <math.h>

int main()
{
	setlocale(LC_ALL, "");
	int count = 1, i, liczba = 1;
	float *tab0;
	float *tab1;
	tab1 = malloc(count*sizeof(float));
	while (liczba >= 0)
	{
		tab0 = malloc(count*sizeof(float));
 		for ( i = 0; i < count; i++)
			tab0[i] = tab1[i];
		free(tab1);
		printf("Podaj nową liczbę: ");
		scanf_s("%f", &tab0[count-1]);
		liczba = tab0[count - 1];
		count++;
		tab1 = malloc(count*sizeof(float));
		for (int i = 0; i < count; i++)
			tab1[i] = tab0[i];
		free(tab0);
	}
	printf("lp	liczba	sześcian

");
	for (i = 0; i < count-2; i++)
		printf("%d	%.2f	%.2f
", i + 1, tab1[i], pow(tab1[i], 3));
        free(tab0);
        free(tab1);
	getchar();
	getchar();
	return 0;
}
oczywiście można dać parę poprawek w tym kodzie, ale w gruncie rzeczy jest ok.
Ser Cubus
Użytkownik
Użytkownik
Posty: 1406
Rejestracja: 6 maja 2012, o 22:46
Płeć: Mężczyzna
Lokalizacja: Polska
Podziękował: 107 razy
Pomógł: 145 razy

[C] Wczytywanie liczby i wyświetlanie sześcianu

Post autor: Ser Cubus »

licznik na początku powinnien wynosić 0, przecież możemy jako pierwszą podać liczbę ujemną
ODPOWIEDZ