Addition bei C/ C++ programmieren?
Kann mir jemand bitte sagen wie ich bei dieser Aufgabe vorgehen soll? bin neu bei C.
![- (Computer, Mathematik, programmieren)](https://images.gutefrage.net/media/fragen/bilder/addition-bei-c-c-programmieren/0_big.png?v=1559118670000)
5 Antworten
![](https://images.gutefrage.net/media/user/Myrmiron/1504557781599_nmmslarge__0_0_647_647_3e9177f5505502a2ca568a751ec6dddb.png?v=1504557784000)
An scheinend sollst du jede Addition in einen pthread auslagern, also quasie 100 pthreads initialisieren und jeden 2 zahlen addieren lassen.
Das ist schon eine nicht sehr triviale Aufgabe, vor allem für einen Anfänger.
pthread_t threads[100];
int i;
int n;
for(n = 0; n<100; n++){
pthread_create(&threads[n], NULL, addieren, (void*)n;
}for(i = 0; i < 100; i ++){
pthread_join(threads[i], NULL);
}
So könnte man zum Beispiel 100 pthreads initialisieren und ihnen die Funktion addieren sowie den Parameter n übergeben.
Hoffe diese kleine Codebeispiel hilft dir schon weiter, an sonsten vielleicht mal in die man-page von pthread_create schauen, da steht noch besser worauf man achten muss und wie das genau funktioniert.
![](https://images.gutefrage.net/media/user/Rammstein53/1615404814643_nmmslarge__0_0_346_346_2e08198db203389692d6d8287572496d.png?v=1615404815000)
Die Aufgabe ist unklar formuliert, weil es sich um drei Arrays handelt.
Ungeachtet dessen könnte jedes Array unabhängig von den anderen aufgebaut werden, also z.B. in drei Threads.
for( ... )
{
A[i] = i;
}
for( ... )
{
B[i] = size - i;
}
for( ... )
{
// C[i] = i + size - i
C[i] = size;
}
![](https://images.gutefrage.net/media/user/Rammstein53/1615404814643_nmmslarge__0_0_346_346_2e08198db203389692d6d8287572496d.png?v=1615404815000)
Ich erkenne drei Arrays A,B,C. Ausserdem sind alle Elemente von C[] identisch. Die Aufgabe ist kompletter Schwachsinn.
![](https://images.gutefrage.net/media/default/user/10_nmmslarge.png?v=1551279448000)
ein Pthread oder so was macht C[i] = C[i] + B[i] und der andere C[i] = C[i] + B[i]
die Aufgabe ist seltsam
![](https://images.gutefrage.net/media/user/RakonDark/1552185525294_nmmslarge__0_0_160_160_7f828fad18ee7edb96b8daceedaeeadb.png?v=1552185525000)
die 2 forschleifen in pthread auslagern .
![](https://images.gutefrage.net/media/user/Rudinatooor/1600283582451_nmmslarge__79_0_318_318_cca6baba55be9894a942aae5a0a75756.png?v=1600283583000)
weist du wie das geht ? also wie ich es formulieren kann ?
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Ein Thread könnte die Addition der Elemente 0..size/2-1 und ein anderer die Addition der Elemente size/2..size-1 übernehmen.
![](https://images.gutefrage.net/media/user/Rudinatooor/1600283582451_nmmslarge__79_0_318_318_cca6baba55be9894a942aae5a0a75756.png?v=1600283583000)
ich weiß leider noch nicht wie ich das Programm zum laufen bringen soll
![](https://images.gutefrage.net/media/default/user/15_nmmslarge.png?v=1551279448000)
Dazu habe ich mich speziell in C zuwenig mit Threads beschäftigt.
Ist für mich nicht unklar formuliert. A[] und B[] werden komponentenweise addiert. Und das sind zwei. In C[] wird komponentenweise das Ergebnis gespeichert.