Array auffüllen.
-
Wieder zu schnell abgeschickt grmbl.
Vorsicht: = ist eine ZUWEISUNG, == ist ein Test auf Gleichheit. Eigentlich warnt der Compiler (du hast doch Warnungen aktiviert gell?) aber durch die Klammern wird die Warnung unterbunden. Und du möchtest a[k+1] ändern, nicht a[k].
-
Vielen Dank. Ich denke jetzt klappts. Programm ist in C. Muss leider Devc++ benutzen.
#include <iostream>
using namespace std;int main(void)
{
int a[]={0,1,1,0,0,1,0,1,1,0,0,1,0,1,1,1,0,0,1,0};int k=0;
int z=0;
int v;for (k=0;k<17;k++)
{
if ((a[k]==1)&&(a[k+1]==0)&&(a[k+2]==1))
{
a[k+1]=1;
z++;
}}
for (v=0;v<20;v++)
{
cout << a[v];
}
cout << endl <<z;system ("pause");
return 0;
}
-
Anton258456 schrieb:
Programm ist in C.
Nein, ist es nicht.
C kennt keine namespace und auch kein cout. Das << hat auch eine andere Bedeutung.Anton258456 schrieb:
Muss leider Devc++ benutzen.
Dann hoffentlich in einer aktuellen Version > 5.x
-
for (k=0;k<17;k++)
Nein, 0 bis inklusive 17, also <18. Genau lesen!Frage an Bitmapper, woran erkennst du dass er Dev-C++ nutzt??
-
4.9.9.2. Muss mal Updaten. Ka warum das C++ ist sollte eigentlich C sein.
Naja es funktioniert. Danke
-
Du kannst soweit ich weiß in den Projekteinstellungen zwischen C und C++ auswählen.
Was du brauchst ist Code::Blocks oder MSVC. Mit einem DevShit++ 4.9.9.2 wird das nichts.
-
@dönerknödel
war eine Vermutung weil Dev-Cpp vorschlägt system("pause") zu verwenden./* run this program using the console pauser or add your own getch, system("pause") or input loop */
Ausserdem ist Dev-Cpp meist die erste (und einzige) Wahl für Anfänger, wegen so Seiten wie c-programmieren.com
-
Danke für die Info Bitmapper.
(Ich hab ja bisher immer ewig gewartet bis C::B startet, bis mir auffiel dass der gcc in der Konsole deutlich einfacher zu bedienen ist als ich dachte... Einfach gcc -Wall datei.c und es kommt a.exe raus. Für kleine Sachen völlig ausreichend, den Debugger und Co. von C::B nutze ich eh nicht.)
-
Dann bekommst du aber schnell Probleme wenn du ein paar libs statisch linken musst
-
Ich hab schon externe libs benutzt, konkret GD, mit Handbuch vom gcc durchaus machbar. Das ist dynamisch gelinkt aber statisch dürfte doch nicht so unterschiedlich sein? Vielleicht -static dazu oder so?
gcc main.c -Wall -O3 -I"D:\Gd\include" -L"D:\Gd\lib" -lgd
-
Ich meinte Probleme wegen der Tipparbeit wenns mal 20 libs sind.
Da warte ich lieber 10 sek auf CodeBlocks.
-
Ich mache wenn überhaupt Mikroprojekte, mehr als eine externe Lib ist mir noch nie passiert... Und was C::B betrifft ich hab nen uralten Rechner, da sind es mehr als 10 Sekunden.
-
Hey Leute hab noch ein Problem. Wie bekomm ich die Nebendiagonale eine 0-Matrix mit 1ern versehen.???
Also 0000001
0000010
0000100
0001000
0010000 usw. Matrix ist quadratisch. Als 5x5 oder 10x10 usw.Danke
-
for(i=0;i<max;i++) { for(j=max-1;j<=0;j--) { matrix[i][j]=1; } }
habs jetzt nicht ausprobiert, aber so müsste es doch gehen.
-
#define SIZE 5 int m[SIZE][SIZE]; int i; for(i=0;i<SIZE;i++) m[SIZE-1-i][i]=1;
-
HansKlaus schrieb:
for(i=0;i<max;i++) { for(j=max-1;j<=0;j--) { matrix[i][j]=1; } }
habs jetzt nicht ausprobiert, aber so müsste es doch gehen.
Ich glaub nicht, dass du solange j kleiner oder gleich 0 ist meinst.
Ausserem befüllst du das gesammte Array mit Einsen.bool var[10][10]={0}; for (int i=0; i < 10; i++) var[i][10-(1+i)] = 1;
Auch ungetestet
-
So ist es im Moment aber da sind dann überall 1 er????
#include <iostream>
using namespace std;int main(void)
{
int i;
int k;int mat [10][10]={0};
for (i=0;i<10;i++)
{
for (k=10;k>0;k--)
{
mat [i][k]=1;
}
}for (i=0;i<10;i++)
{
cout << endl;for (k=0;k<10;k++)
{
cout << mat [i][k];
}
}system ("pause");
}
-
Ja, lies meinen Beitrag obendrüber.
-
Versteh ich leider nicht.
-
Was gibts da nicht zu verstehen?
Du kannst meinen Code 1 zu 1 übernehmen und in die main setzen.