Przypisanie wartości do tablicy.

0

Witam serdecznie :)

Nazwa tematu miała dokładnie brzmieć "Przypisanie wartości pobranej od użytkownika do tablicy" , ale była troszkę długa :)

Mianowicie, mam takie pytanie, czy podany kod będzie poprawny?

 void main()
	int nIlość; 
    const int  TABLICA = 100;
	int nWprowadzone

	std::cout << " Podaj ilosc liczb " << std::endl;      // Pobranie od użytkownika ilości liczb.
    std::cin >> nIlość;
	std::cout << " Podaj " << nIlość << " liczb(y) " << std::endl;   // Pobranie od użytkownika samych liczb.
	std::cout >> nWprowadzone


		 int nLiczby [TABLICA] = {nWprowadzone}

Dodam, że w zmiennej nWprowadzone ma być przechowane kilka zmiennych i mają się one sumować w tablicy. Jest jakiś inny sposób na przypisanie wartości?

Z góry dziękuje za odpowiedź i zainteresowanie tematem ;)

1

A czemu nie zobaczysz co na to kompilator?

0
void main()
{
	int Śr;
	int nIlość; 
    const int TABLICA = 100;
	int nWprowadzone;
	int suma;


	std::cout << " Podaj ilosc liczb " << std::endl;      // Pobranie od użytkownika ilości liczb.
    std::cin >> nIlość;
	std::cout << " Podaj " << nIlość << " liczb(y) " << std::endl;   // Pobranie od użytkownika samych liczb.
	std::cin >> nWprowadzone;


	int nLiczby [TABLICA] = {nWprowadzone};  // deklaracja tablicy
	for (int i = 0; i < TABLICA; i++) 
		nLiczby[i] = 0;                             // i jej wyzerowanie
	


     suma = 0;                                   // wyzerowanie sumy
	for ( int i = 0; i < nWprowadzone; i++)
	{
		suma +=  nLiczby[i];
	
	Śr = (nIlość / nWprowadzone);

	}
		std::cout << "Srednia arytmetyczna wynosi " << Śr << std::endl;

	getch();

} 

Kompilator na to 0 bądź błąd po skomplilowaniu i wprowadzeniu liczb, nie oczekuję gotowego kodu tylko porady :)

Pozdrawiam ;)

0

1.int main()
2.Identyfikatory ze znakami typu ą, ś i tak dalej są niepoprawne.
3.Musisz/możesz zrobić tak:

int main()
{
 using std::cout;
 using std::cin;

 /* ... */

 unsigned int count;

 cout << "Podaj liczbę liczb do wczytania: ";
 cin >> count;

 int* numbers = new int[count];
 for (unsigned int i=0; i<count; i++)
  cin >> numbers[i];

 /* dalsza część kodu */
}

(pomijając fakt, że tutaj powinien był zostać użyty wektor (std::vector), no ale...).

PS "ilość liczb" to niepoprawne sformułowanie, ponieważ "liczby" - w sensie rzeczownika - są policzalne. Tak tylko spełniam się w roli gramatycznego nazisty ;P

0

Jeszcze do postu wyżej dodam:
4. Obliczenie średniej na każdym kroku pętli jest bez sensu wystarczy obliczyć raz po pętli.
5. W związku z int main() na końcu return 0;
6. Lepiej zamień getch(); na while(cin.get()!='\n') {} cin.get()
Warto też dodać że polskie nazewnictwo zmiennych jest złem.

0

Przyjąłem Wasze rady do serca :)

Wszystko jest jakby na pierwszy rzut oka w porządku dopóki nie dojdziemy do sumowania i obliczania średniej:

 suma = 0;                                   // wyzerowanie sumy
   for ( int i = 0; i < TABLICA; i++)
		suma = suma += nLiczby[i];


	Sr = (suma / nIlosc);                    // Obliczenie średniej arytmetycznej 

Tutaj tak naprawdę nic się nie sumuje, zwracany jest wynik równy 1.

0

Przepraszam za tamten niepoprawnie napisany post, jestem zupełnie nowy i postaram się jak najbardziej dostosować.

#include <iostream>
#include <conio.h>


int main()
{
	int Sr;
	int nIlosc; 
        const int TABLICA = 100;
        unsigned int nWprowadzone;
	int suma;


	std::cout << " Podaj liczbe liczb do wczytania " << std::endl;     // Pobranie od użytkownika liczby liczb liczb.
        std::cin >> nIlosc;
	std::cout << " Podaj " << nIlosc << " liczb(y) " << std::endl;    // Pobranie od użytkownika samych liczb.
	std::cin >> nWprowadzone;


	int nLiczby [TABLICA] = {nWprowadzone};                         // Deklaracja tablicy
	for (unsigned int i = 0; i < nWprowadzone; i++)
		std::cin >> nLiczby[i];                                   
	

        suma = 0;                                                  // Wyzerowanie sumy.
         for ( int i = 0; i < TABLICA; i++)
	suma = suma + nLiczby[i];                             // Sumowanie wszystkich liczb znajdujących się w tablicy.


    Sr = ( suma / nIlosc );                                 // Obliczenie średniej arytmetycznej  

    std::cout << "Srednia arytmetyczna wynosi " << Sr << std::endl;

    while(std::cin.get()!='\n') {} std::cin.get();

}
 
0
#include <iostream>
#include <conio.h>


int main()
{
	int 	  nAvg, nSum, nCount;  //Kolejno -suma, ilość liczb.
	double fAvg;			//Średnia


	std::cout << " Podaj liczbe liczb do wczytania " << std::endl;		//Proste wypisanie tekstu
        std::cin >> nCount;									//Liczba jaką teraz wpiszesz trafi do zmiennej nCount - ilość
	while( nCount <= 0 )									//Dopóki ilość jest mniejsza lub równa zero
	{
		std::cout << "Liczba musi być większa od zero! " << std::endl;	//Wyświetl komunikato o błędzie
		std::cin >> nCount;								//Liczba jaką teraz wpiszesz trafi do zmiennej nCount(ilość)
	}
	

	std::cout << " Podaj " << nCount<< " liczb(y) " << std::endl;		//Proste wypisanie tekstu

	nSum = 0;											//Wyzerowanie sumy
	int* nArray = new int[ nCount ];	/*To jest niepotrzebne*/		//Utworzenie tablicy zawierającej nCount(ilość) elementów
	for (unsigned int i = 0; i < nCount ; i++)
	{
		std::cin >> nArray[ i ];		/*To jest niepotrzebne*/		//Wczytanie liczby do klawiatury
		nSum += nArray[ i ];								//Dodanie wczytanej liczby do sumy
	}                  

	nAvg = ((float)nSum) / ((float)nCount);						//Obliczenie średniej

	std::cout << "Srednia arytmetyczna wynosi " << nAvg<< std::endl;	//Proste wypisanie tekstu

	while(std::cin.get()!='\n') {} std::cin.get();					//Dopóki pobrany znak nie równa się 'nowy wiersz(ENTER)' pobierz znak

	delete[] nArray;				/*To jest niepotrzebne*/		//Jak gdzieś robisz new, to zawsze(dopóki jesteś początkujący) musisz zrobić delete!
}
 

Jeśli usuwasz niepotrzebe części to wszystkie. Zostawiłem je, żeby Ci pokazać jak tworzyć tablicę o dowolnym rozmiarze.

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