• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z pętlą

VPS Starter Arubacloud
0 głosów
260 wizyt
pytanie zadane 12 listopada 2017 w C i C++ przez niko404 Użytkownik (910 p.)

hej, mam mały problem, treść zadania to: Napisz program wpisującego do tablicy 100 elementowej wartości: 0,10,20,30,… oraz wyświetlić to.

#include "stdafx.h"
#include <iostream>
#include <cstdlib>
#include <cstdio>

using namespace std;

int main()
{
	int tab[100] = { 0 };

	for (int i = 0; i < 100; i++) {
		tab[i] += 10;
		cout << i << " = " << tab[i] << endl;
	}

	system("PAUSE");
    return 0;
}

napisałem coś takiego, ale nie dodaje mi do tablicy +10, tylko każdy element ma 10, co robię źle?

3 odpowiedzi

+1 głos
odpowiedź 12 listopada 2017 przez Eryk Andrzejewski Mędrzec (164,260 p.)
wybrane 12 listopada 2017 przez niko404
 
Najlepsza

Pomyśl logicznie - jeśli na początku zerujesz każdą tablicę, potem przechodzisz do kolejnych elementów (każdy kolejny wynosi 0), to dodając do nich 10 otrzymujesz? Tak, dziesięć.

Popraw instrukcję:

tab[i] += 10;

Na:

tab[i] = i * 10;

I nie musisz wcześniej zerować tablicy.

I błagam, nie używaj system... Dużo lepiej będzie użyć choćby std::cin.get() - Rozwiązanie będzie przenośne.

0 głosów
odpowiedź 12 listopada 2017 przez niko404 Użytkownik (910 p.)

dobra z tamto ogarnąłem, ale mam kolejne zadanie nad którym już chwile siedzę:

Stwórz tablicę 10-cio elementową i zainicjalizuj ją dowolnymi wartościami. Napisz program

 obliczający średnią arytmetyczną dodatnich elementów tablicy, //

int main()
{
	int tab[10] = { 2,2,3,3,6,7,2,6,3,1 };
	float srednia = 0;

		for (int i = 0; i < 10; i++) {
			srednia += tab[i];
			srednia = srednia / 10;
		}

	cout << srednia << endl;

	cin.get();
	return 0;
}

mam takie coś, póki co średnia jest liczona, tylko jak zrobić żeby liczyło dodatnie elementy? nie oczekuje gotowych rozwiązań tylko naprowadzenia. tą pętlę for wrzucił bym w if() tylko jak sprawdzić czy element jest dodatni czy ujemny? oraz później skąd wiedzieć ile elementów jest dodatnich. hmm..

 zmieniający znak poszczególnych elementów tablicy, // na to nie mam pomysłu :( 

 znajdujący minimalną wartość spośród wszystkich elementów tablicy oraz podający jej pozycję, // również brak pomysłu 

 znajdujący maksymalną wartość spośród wszystkich elementów tablicy oraz podający jej pozycję, // również brak pomysłu 

 obliczający ilość nieparzystych elementów tablicy. /// również brak pomysłu 

liczę na naprowadzenie, dopiero uczę się programować w c++ a takie zadanie dostałem na zaliczenie i muszę się ich nauczyć :|

komentarz 12 listopada 2017 przez Aisekai Nałogowiec (42,190 p.)
1. Zrób dwie zmienne. Jedna będzie liczyła sumę, druga ilość elementów. W ifie sprawdzaj czy liczba>0. Jeżeli jest do dodaj ją do sumy i zinkrementuj licznik

2. Co znaczy "poszczególnych"?  Wszystkich? Jeżeli tak to każda komórkę przemnoz przez -1.

3. Min i max podobnie. Stwórz dwie zmienne. Jedna pamietajaca dotychczasowy max, przypisz na starcie zawartość pierwszej komórki, druga - indeks tablicy, przypisz 0.  I potem sprawdzaj ifem czy następne elementy są większe. Jeżeli są, to do Maxa przypisz odpowiednią zawartość tabeli i do zmiennej przechowujacej odpowiedni indeks.

4. Zrób licznik, ustaw go na 0. Potem sprawdzaj każdy element tablicy. Jeżeli tablica[i]%2==1 dodaj do licznika 1.
0 głosów
odpowiedź 19 listopada 2017 przez niko404 Użytkownik (910 p.)

Chyba udało mi się zrobić, przynajmniej jako tako działa (wrzucam kod, może się komuś przyda)

#include "stdafx.h"
#include <cstdlib>
#include <cstdio>
#include <iostream>

using namespace std;

int tablica[10] = { 1,6,3,3,8,3,9,8,4,9 };
int suma;
int suma_p;
int suma_d;
int ile_dodatnich;
float suma_dodatnich;
float srednia_d;
int mini;
int maks;
int licz;

void suma_elementow() {
	for (int i = 0; i < 10; i++) 
		suma += tablica[i];

	cout << "Suma elementow tablicy: " << suma << endl;
}

void suma_elementow_parzystych() {
	for (int i = 0; i < 10; i++)
		if (tablica[i] % 2 == 0)
			suma_p += tablica[i];

	cout << "Suma parzystych elementow tablicy: " << suma_p << endl;
}

void srednia_dodatnich() {
	for (int i = 0; i < 10; i++)
		if (tablica[i] > 0) {
			ile_dodatnich++;
			suma_dodatnich += tablica[i];
		}
		srednia_d = suma_dodatnich / ile_dodatnich;

	cout << "Srednia dodatnich elementow tablicy: " << srednia_d << endl;
}

void zmienia_znak() {
	for (int i = 0; i < 10; i++) {
		tablica[i] *= -1;
	}

	cout << "Zmiana znaku elementow tablicy: ";
	for (int i = 0; i < 10; i++) cout << tablica[i] << ", ";
	cout << endl;
}

void minimalna() {
	for (int i = 0; i < 10; i++)
		if (tablica[i] < tablica[mini])
			mini = i;

	cout << "Minimalna wartosc elementow tablicy: " << tablica[mini] << endl;
}

void maksymalna() {
	for (int i = 0; i < 10; i++)
		if (tablica[i] > tablica[maks])
			maks = i;

	cout << "Maksymalna wartosc elementow tablicy: " << tablica[maks] << endl;
}

void ilosc_nieparzystych() {
	for (int i = 0; i < 10; i++)
		if (tablica[i] % 2 != 0)
			licz++;

	cout << "Ilosc nieparzystych elementow tablicy: " << licz << endl;
}

int main()
{
	suma_elementow();
	suma_elementow_parzystych();
	srednia_dodatnich();
	minimalna();
	maksymalna();
	ilosc_nieparzystych();
	zmienia_znak();

	cout << endl;
	cin.get();
    return 0;
}

 

Podobne pytania

0 głosów
2 odpowiedzi 278 wizyt
pytanie zadane 9 stycznia 2019 w C i C++ przez elwkitn91 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 560 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez niezalogowany
0 głosów
3 odpowiedzi 248 wizyt
pytanie zadane 19 lutego 2017 w C i C++ przez beniek_01 Nowicjusz (140 p.)

92,452 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...