我有一個家庭作業,我覺得我已經接近正確了。作業如下:循環問題,過早停止
銀行貸款給對方。在經濟困難時期,如果銀行破產,可能無法償還貸款。銀行的總資產是其目前的餘額加上其他銀行的貸款。圖8.1(附圖)是一張圖,顯示了五家銀行。銀行目前的餘額分別爲:25,125,175,75億和1.81億美元。從節點1到節點2的有向邊表示銀行1個貸款40磨到銀行2.
如果銀行總資產下一定限度時,該行被認爲是不安全的。如果一家銀行不安全,它所借的錢不能退還給貸方,貸方也不能將其貸款總額計入其中。因此,貸款人也可能不安全。
編寫一個程序來查找所有不安全的銀行。你的程序如下讀取輸入。它首先讀取兩個整數,n
和limit
,其中n
表示銀行數量,limit
是保持銀行安全的最低資產。然後它讀取n
行描述n
銀行ID爲從0到n-1的信息。該行的第一個數字是銀行的餘額。第二個數字表示從銀行借來的錢的數量,其餘的是兩個數字。每一對描述一個借款人。第一個數字是銀行ID,第二個數字是它借入的金額。假設銀行的最大數量是100。例如,對於五家銀行的輸入是如下(上限爲201)
25 2 1 100.5 320.5 4
銀行3的總資產是75加125,這是在201以下,所以銀行是不安全的。銀行3不安全後,銀行1的總資產變爲125 + 40,現在也不安全。輸出應該是「不安全的銀行是3 1」
這是我目前的解決方案的問題。我無法弄清楚如何找到所有不安全的銀行。只是第一個。我有它設置爲靜態輸入測試。如果我能夠正常工作,我已經準備好了工作用戶輸入代碼。
#include <iostream>
using namespace std;
int main()
{
const int SIZE = 100;
double balance[SIZE];
double loan[SIZE][SIZE];
int nobanks;
int limit;
int i = 0;
int j = 0;
int k = 0;
int noborrowers;
double assets[SIZE];
bool isSafe[SIZE];
bool newunsafefound = true;
cout << "Enter number of banks and the limit:" << endl;
// Set all of the data
nobanks = 5;
limit = 201;
balance[0] = 25.0;
balance[1] = 125.0;
balance[2] = 175.0;
balance[3] = 75.0;
balance[4] = 181.0;
loan[0][1] = 100.5;
loan[0][4] = 320.5;
loan[1][2] = 40.0;
loan[1][3] = 85.0;
loan[2][0] = 125.0;
loan[2][3] = 75.0;
loan[3][0] = 125.0;
loan[4][2] = 125.0;
// Set array to all true values
for(i = 0; i < nobanks; i++)
{
isSafe[i] = true ;
}
cout << "Unsafe banks are: ";
i=0;
while(isSafe[i] == true)
{
newunsafefound=false;
i=0;
do
{
assets[i] = balance[i]; //Set assets to balance
for (j = 0; j < nobanks; j++) // Check if a bank has loans and add them to assets
{
if (loan[i][j] >= 0)
assets[i] += loan[i][j];
}
if (assets[i] < limit) // Check to see if current bank meets limit
{
isSafe[i] = false; // Set bank to not safe if limit not met
newunsafefound = true;
cout << i << " " ; //Display the bank that is unsafe and a space for the next bank
k=0;
for (k = 0; k < nobanks; k++)
{
loan[i][k] = 0; //Set banks loans to 0 if unsafe.
k++;
}
}
i++;
} while(i < nobanks);
}
return (0);
}
我在做什麼錯?
你真的*不縮進你的代碼,或者你有問題複製和粘貼它嗎? –
難道你不應該從文件中讀取你的輸入嗎? – Mranz
請請縮進。 –