這是一個函數,它調用一堆棧和整數中的數組。它應該顛倒這些值,但首先我必須弄清楚哪些是字符串,哪些是整數,然後才能切換它們。但我不斷收到錯誤。有什麼看起來可笑嗎?反向函數不斷給我錯誤
void reverse(Stack *S)
// NOTE: Called w/ user input 'r'
// PRE: Stack S is initialized
// POST: The first two values of the stack are reversed on the stack
{
int valone;
int valtwo;
char stringone[50];
char stringtwo[50];
if (S->size < 1)
{
printf("Error: There are less than 2 values on the stack \n");
}
else
{
valone = (float)topInt(S);
strcpy(stringone, topString(S));
pop(S);
valtwo = (float)topInt(S);
strcpy(stringone, topString(S));
pop(S);
if(stringone[0] == '\n')
{
pushInt(S, valone);
}
else if(valone == '\n')
{
pushString(S, stringone);
}
else if(stringtwo[0] == '\n')
{
pushInt(S, valtwo);
}
else if(valtwo == '\n')
{
pushString(S, stringtwo);
}
}
}
你得到了什麼樣的錯誤? – asbumste
其中是Stack類型的定義?爲什麼你使用一個強制轉換來將該值存儲在一個int中?爲什麼有時候你會推絃,有時整數?您的代碼令人困惑... – vmp