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

Problem z pętlą

Object Storage Arubacloud
0 głosów
265 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 282 wizyt
pytanie zadane 9 stycznia 2019 w C i C++ przez elwkitn91 Nowicjusz (150 p.)
0 głosów
1 odpowiedź 563 wizyt
pytanie zadane 24 stycznia 2018 w C i C++ przez niezalogowany
0 głosów
3 odpowiedzi 252 wizyt
pytanie zadane 19 lutego 2017 w C i C++ przez beniek_01 Nowicjusz (140 p.)

92,568 zapytań

141,424 odpowiedzi

319,630 komentarzy

61,956 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy 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!

...