Вот как вы можете это сделать.
#include <stdio.h>
typedef struct {
int num;
double balance;
char owner[15];
} bankaccount;
int main() {
int numAllocated = 0; // Number of accounts allocated
bankaccount accounts[50];
int ch;
printf("\"a\": to add new account\n\"b\": to print all accounts\n");
void addAccount (bankaccount *, int);
void printAccounts (bankaccount *, int);
for ( ;; ) {
ch = getchar();
if (ch == '\n' ) continue;
else if (ch == 'a') {
addAccount(accounts, numAllocated);
numAllocated++;
}
else if (ch == 'b') printAccounts(accounts, numAllocated);
else break;
printf("\"a\": to add new account\n\"b\": to print all accounts\n");
}
}
void addAccount (bankaccount *account, int num) {
account[num].num = num + 1;
printf("Owner's name: ");
scanf("%s", account[num].owner);
printf("Balance: ");
scanf("%lf", &account[num].balance);
}
void printAccounts (bankaccount *accounts, int num) {
if (num > 0) {
for (int i = 0; i < num; i++) {
printf("\n%-10s%d\n", "Acc#:", accounts[i].num);
printf("%-10s%s\n", "Name:", accounts[i].owner);
printf("%-10s%.2f\n", "Balance:", accounts[i].balance);
}
}
else printf("No account allocated yet\n");
}
Я прошел ваш пример кода.Хотя вы можете сделать это лучше, читая о динамической памяти, указателях и, возможно, связанном списке, чтобы сделать свой список учетных записей и поле владельца структуры struct dynamic.Но вот начало и надеюсь, что вы можете взять его отсюда!