我不能讓我的程序工作,我已經用標記(goto)試過了。 但我無法得到它的工作。我也試圖改進循環,但它以無限循環結束。感謝幫助!C + +循環(三角形抽屜)
#include <iostream> //includes
using namespace std;
int makedreieck(int länge) // function for drawing a triangle
{
int rows=0; //rows
int draw=0; //drawed
while(draw <= länge)
{
draw++;
cout << "*";
if(draw == länge-1)
{
rows++;
draw = länge-rows;
cout << endl;
}
if(draw == 1)
{
getchar();
return 0;
}
}
}
int main(char argument)
{
int dreieck;
cin >> dreieck;
makedreieck(dreieck);
getchar();
return 0;
}
終於拿到了所有的工作......如果有人需要的代碼:
#include <iostream>
#include <time.h>
#include <windows.h>
#include <tchar.h>
using namespace std;
int createtriangle(int length, bool custom, char symbol)
{
clock_t start, finish;
length++;
int OK=0;
int OK_ABORT;
int TRIANGLE_NOT_ALLOWED;
enum returnvalues{OK, OK_ABORT, TRIANGLE_NOT_ALLOWED};
if(length<=0)
{
cerr << "Dreieck mit einer Laenge von " << length-1 <<" unerlaubt.";
return TRIANGLE_NOT_ALLOWED;
}
if(length>81)
{
cout << "Es wurde eine ueber 80 Sternchen lange Treppe entdeckt." << endl << "Es wird empfohlen die Operation abzubrechen"<< endl << "1: abbrechen 2: weiter"<<endl<<"Auswahl: ";
int sel;
cin >> sel;
getchar();
if(sel>2)
{
cout << "Es gibt die Auswahl: "<<sel<<" nicht.";
}
system("cls");
switch(sel)
{
case 1:
return OK_ABORT;
break;
case 2:
break;
}
}
int rows=0;
int draw=0;
start = clock();
while(draw <= length)
{
draw++;
if(rows>=1&&custom==false)
{
cout << "*";
}
if(rows>=1&&custom==true)
{
cout << symbol;
}
if(draw == length)
{
if(rows>=1)
{
cout << endl;
}
rows++;
draw = length-rows;
}
if(rows == length)
{
finish=clock();
if(custom==false)
{
cout << "Es wurde eine "<<length-1<<" Sternchen lange Treppe gebaut."<<endl;
}
else if(custom==true)
{
cout << "Es wurde eine "<<length-1<<" "<<symbol<<" lange Treppe gebaut."<<endl;
}
cout << "Es wurden "<< static_cast<double>(finish - start) /CLOCKS_PER_SEC<< " Sekunden gebraucht.";
return OK;
}
}
return OK;
}
int main()
{
START:
system("cls");
int dreieck;
char time[9];
cout << "Wie gross soll die Treppe sein?: ";
cin >> dreieck;
system("cls");
cout << "Soll ein custom symbol verwendet werden?"<<endl<<"Ja:1 Nein:2"<<endl<<"Auswahl: ";
int menu2;
cin >> menu2;
system("cls");
bool customtrue;
char symbolcustom;
if(menu2>2)
{
cout << "Die Auswahl: " << menu2 << " ist nicht verfügbar";
getchar();
goto START;
}
switch(menu2)
{
case 1:
customtrue = true;
cout << "Symbol angeben(1Char max): ";
cin >> symbolcustom;
break;
case 2:
customtrue = false;
break;
}
system("cls");
createtriangle(dreieck,customtrue,symbolcustom);
getchar();
getchar();
menumark:
system("cls");
cout << "Soll erneut eine Treppe gebaut werden?"<<endl<<"1: Ja 2: Nein"<<endl<<"Auswahl: ";
int menu;
cin >> menu;
if(menu>2)
{
cout <<"Es gibt keine "<<menu<<" Auswahl.";
getchar();
goto menumark;
}
switch(menu)
{
case 1:
goto START;
break;
case 2:
exit(0);
break;
}
return 0;
}
什麼都行不通。你調試了嗎? –
這裏沒有多少東西 - 你期望輸出什麼,你會得到什麼輸出? –
在'makedreieck'中有一個'return 0;';你最後沒有一個。該函數應該返回'void',因爲您忽略了它的返回值,但是您應該_not_忽略關於不返回值的函數的編譯器警告。在發佈代碼之前,應該修復編譯器警告。 (如果你的編譯器沒有警告,找出如何打開警告;如果你的編譯器不能發出警告,請更好地編譯。)這與你的問題無關。 'makedreieck()'中的'getchar()'可能是什麼?這似乎沒有必要。 –