Gast
#4965783
Hallo, wie kann ich ein Array in C prüfen ob alle Werte darin 0 sind? Also ohne eine Schleife zu durchlaufen. Atamer
|
Anzeige
|
C Array auf Inhalt prüfen?
Gast
#4965783
Hallo, wie kann ich ein Array in C prüfen ob alle Werte darin 0 sind? Also ohne eine Schleife zu durchlaufen. Atamer
Gast
#4965786
Gar nicht
Gast
#4965800
Der Andere schrieb: > Gar nicht Doch klar.
Gast
#4965802
Atamer schrieb: > Also ohne eine Schleife zu durchlaufen. So:
Braucht kaum Speicherplatz und geht ganz ohne Schleife.
Gast
#4965803
Dussel schrieb: > Der Andere schrieb: >> Gar nicht > Doch klar. > >
Genialer Programmierer schrieb: > Atamer schrieb: >> Also ohne eine Schleife zu durchlaufen. > > So: > >
> > Braucht kaum Speicherplatz und geht ganz ohne Schleife. Der 1. April war doch schon. ;-) Was wenn das Array z.B. 256 Elemente hat? 256 Zeilen Code hinschreiben oder wie? Das macht doch kein normaler Mensch. Atamer schrieb: > Hallo, > > wie kann ich ein Array in C prüfen ob alle Werte darin 0 sind? Also ohne > eine Schleife zu durchlaufen. Warum sollte es ein sinnvoller Ansatz sein, keine Schleife zu verwenden? Das ist genau die Standardlösung, die immer und ohne Probleme funktioniert. Da braucht man schon einen guten Grund um davon abzuweichen.
Gast
#4965840
Wie kann ich ein Auto bauen das keine Räder hat. Und jetzt nicht kommen mit: Ich bau eins das fliegt, wenn es fliegt ist es ein Flugzeug, kein Auto, wenn es schwimmt ist es ein Boot, ... Trollfrage halt und ihr fallt darauf rein.
Gast
#4965848
Mark B. schrieb: > Das macht doch kein normaler Mensch. Du glaubst aber auch jeden Scheiss. Mark B. schrieb: > Warum sollte es ein sinnvoller Ansatz sein, keine Schleife zu verwenden? Damit man was fertiges benutzen kann. Selber schreiben oder denken geht heute nicht mehr. "Ist ja umständlich. In Programmiersprache XY geht das ganz einfach"
Gast
#4965863
Dirk B. schrieb: > Selber schreiben oder denken geht heute nicht mehr. Bei solchem Aufwand eine Schleife zu schreiben lohnt es sich schon mal im Internet zu suchen ob es da nicht was besseres gibt. Ohne (eigene) Schleife: Neues Array anlegen und mit 0 initialisieren oder mit memset auf 0 setzen. oder ausreichend Speicher mit calloc besorgen. Dann mit memcmp vergleichen.
Gast
#4965894
Mark B. schrieb: > Was wenn das Array z.B. 256 Elemente hat? 256 Zeilen Code hinschreiben > oder wie? Das macht doch kein normaler Mensch. Die Frage war 'wie'. Die Antwort war 'Geht nicht'. Das ist in C falsch und ich habe gezeigt, dass es geht. Ob es sinnvoll ist, war nicht die Frage. Vielleicht entwickelt der Fragesteller ja gerade seinen eigenen C-Compiler und hat Schleifen noch nicht implementiert. ;-) Vielleicht sowas in die richtung?
Oder mit Rekursion:
Man könnte das ganze auch rekursiv lösen, z.B. indem man das Problem für ein Array der Größe N auf das der Größe N-1 zurückführt oder z.B. einen Binärbaum aufbaut. Im ersten Fall skaliert der Speicherverbrauch auf dem Stack linear mit der Größe des Arrays und im zweiten logarithmisch. Im konkreten Fall mag solch ein Vorgehen unglaublich ineffizient sein, aber bei manchen andere Fragestellungen durchaus sinnlos und effizient. Nachtrag: Mist, zu spät... ;-)
Gast
#4965994
tictactoe schrieb:
Das ist kein C, sondern C++.
Gast
#4966235
Ausdrucken, dem Lehrling in die Hand drücken und alle Nullen unterstreichen lassen. Geht super und ohne Schleife. Es sei denn der Lehrling hat eine an.
Gast
#4966363
Markus F. schrieb: > ((optimize("-funroll-loops"))); naja, das geht ja nur bei festen Werten. Für eine optimal Laufzeit mit z.B. 100 oder 1000 Elementen sollte man Duffs Device (entsprechend) verwenden ;-) https://de.wikipedia.org/wiki/Duff%E2%80%99s_Device
Gast
#4966381
Dirk B. schrieb: > Ohne (eigene) Schleife: > > Neues Array anlegen und mit 0 initialisieren oder mit memset auf 0 > setzen. > oder ausreichend Speicher mit calloc besorgen. > > Dann mit memcmp vergleichen. Zweites Array ist nicht nötig. Alle Elemente sind 0, wenn das erste Element 0 ist und jedes Element gleich dem Nachfolger ist:
;) Vielleicht war hier tatsächlich eine rekursive Lösung gesucht anstatt einer iterativen. Dann klingt das Ganze ziemlich nach Hausaufgaben machen. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|