Odejmowanie liczb zapisanych w tablicy

0

Witam, czy mógłby mi ktoś podpowiedzieć w jaki sposób odjąć liczby liczby z jednowymiarowej tablicy dynamicznej?

1
int* t = new int[3];
t[0] = 34;
t[1] = 16;
t[2] = t[0] - t[1];
0

Ten sposób akurat znam i nie zadowolą mnie, bo liczby są znane, a ja chcę program odejmował to, co ja podam z klawiatury. Zapomniałem jeszcze dopisać, że ewentualnie może być na dwuwymiarowej, jeżeli będzie mniej kombinowania.

	int rozmiar_tablicy=0,wartosc=0,sumuj=0;
		cout <<"Podaj ilosc liczb do dodania: ";
		cin>>rozmiar_tablicy;
		int* tab=new int[rozmiar_tablicy];
		for(int i=0;i<rozmiar_tablicy;i++)
		{
			cout << "Podaj " <<i<<" liczbę do dodania";
			
			cin>>tab[i];
			
		}
	for(int i=0;i<rozmiar_tablicy;i++)
	{
	
		sumuj=sumuj+tab[i];
		
	}
	cout << "Wynik: " <<sumuj;
	delete [] tab;
	break; 

Jeżeli będzie prościej, może być to wykonane na dwuwymiarowej i wolałbym,aby również była dynamiczna.

0

Nie rozumiem o co Ci chodzi... przypisujesz elementom tablicy to co wczytasz tak jak w twoim kodzie, a potem sobie odejmujesz to co chcesz od czego chcesz tak samo jak dodajesz...

0

A Nie prościej je dodawać/odejmować/co tam jeszcze chcesz z nimi robić od razu zamiast do tablicy dawać?

0

W takim razie oświeć mnie masterze jak to zrobić, ponieważ jak zrobiłem tak samo, tylko zamiast w sumuj dałem - zamiast plus, to program zaczął mi wyświetlać jakieś liczby z kosmosu wzięte, albo pomimo podania,że tablica ma mieć dwa elementy i jak dam 12 i wcisnę enter wyświetla mi wynik: 401841915, tak więc nawet nie daje mi szansy wprowadzenia drugiej liczby.

0
sig napisał(a):

A Nie prościej je dodawać/odejmować/co tam jeszcze chcesz z nimi robić od razu zamiast do tablicy dawać?

Pewnie, tylko chodzi o to, że wolę na tablicach, ponieważ robię ten program w celu utrwalenia tego, co się dotychczas nauczyłem i chcę przy okazji dorzucić nowopoznane tablice, aby je sobie przećwiczyć.

0
int rozmiar_tablicy1=0,odejmuj=0;
		cout <<"Podaj ilosc liczb: ";
		cin>>rozmiar_tablicy1;
		int* tab1=new int[rozmiar_tablicy1];
		for(int i=0;i>rozmiar_tablicy1;i++)
		{
			cout << "Podaj " <<i+1<<" liczbę: ";
			
			cin>>tab1[i];
			
		}
	for(int i=0;i<=rozmiar_tablicy1;i++)
	{
	
		odejmuj=odejmuj-tab1[i]; 

Jak widać, jest to wierna kopia dodawania, tylko sumuj=sumuj+tab[i], zamieniłem na odejmuj=odejmuj-tab[i] i dzieje mi się to, co wcześniej opisywałem.

0
for(int i=0;i>rozmiar_tablicy1;i++)

To sie nie wykona ani razu.

for(int i=0;i<=rozmiar_tablicy1;i++)

To sie wykona o 1 raz za duzo.

#include <stdio.h>
#include <stdlib.h>
 
int main() {
    int rozmiartablicy1 = 0, odejmuj = 0, *tablica, i;
    scanf("%d ", &rozmiartablicy1);
    tablica = malloc(rozmiartablicy1*sizeof(int));
    for(i = 0; i < rozmiartablicy1; ++i) {
        scanf("%d ", &tablica[i]);
    }
    for(i = 0; i < rozmiartablicy1; ++i) {
        odejmuj -= tablica[i];
    }
    printf("%d\n", odejmuj);
    return 0;
}

http://ideone.com/2IAruf

0
PiotrK_2013 napisał(a):
int rozmiar_tablicy1=0,odejmuj=0;
		cout <<"Podaj ilosc liczb: ";
		cin>>rozmiar_tablicy1;
		int* tab1=new int[rozmiar_tablicy1];
		for(int i=0;i>rozmiar_tablicy1;i++) // TU SCHRZANILEŚ
		{
			cout << "Podaj " <<i+1<<" liczbę: ";
			
			cin>>tab1[i];
			
		}
	for(int i=0;i<=rozmiar_tablicy1;i++) // TU SCHRZANILEŚ
	{
	
		odejmuj=odejmuj-tab1[i]; 

Jak widać, jest to wierna kopia dodawania, tylko sumuj=sumuj+tab[i], zamieniłem na odejmuj=odejmuj-tab[i] i dzieje mi się to, co wcześniej opisywałem.

Nie jest to wierna kopia, schrzaniłeś w kluczowych momentach - warunki obu pętli: http://ideone.com/KzlTBt

0

Ale ze przywal... Teraz dopiero jak dałeś poprawiony kod zauważyłem. :/ Mimo wszystko nadal jest lipa, ponieważ jak dam mu 24 i 2 to pokazuje -26, tak więc działać działa, ale myli się.

0

Dzięki za pomoc, bug wywalony. Po prostu dałem mu odejmuj=-odejmuj-tab1[i]; i jest ok.

0
PiotrK_2013 napisał(a):

Po prostu dałem mu odejmuj=-odejmuj-tab1[i]; i jest ok.

Jeżeli tak dałeś to wynikiem będzie: (suma parzystych minus suma nieparzystych)*(-1)^(ilość_elementów)

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