phone変数を配列に格納して最初のswitch文で出力する方法を理解できません。コードを実行するたびに、最後に入力した要素が残り、残りの要素は無視されます。参照値を配列に格納する
#include <stdio.h>
#define size 3
void decompose(long long int n, int *area, int *prefix, int *line) {
int n1, n2, n3;
n1 = n/10000000;
n2 = (n/10000) % 1000;
n3 = (n/1) % 10000;
*area = n1;
*prefix = n2;
*line = n3;
}
/* main program */
int main(void) {
int option;
int phone, num;
int aaa, ppp, llll;
int i = 0;
long long int phoneNumber[size] = {0LL, 0LL, 0LL};
printf("---=== Phone Numbers ===---\n\n");
do {
// Display the Option List
printf("1. Display Phone List\n");
printf("2. Add a Number\n");
printf("0. Exit\n\n");
printf("Please select from the above options: ");
scanf("%d", &option);
printf("\n");
switch (option) {
case 0: // Exit the program
printf("Exiting Phone Number App. Good Bye!!!");
break;
case 1: // Display the Phone List
// @IN-LAB
printf("Phone Numbers\n");
printf("==============\n");
// Display each number in decomposed form
for (i = 0; i < size; i++) {
printf("(%3d)-%3d-%4d", aaa, ppp, llll);
printf("\n");
}
break;
case 2: // Add a Phone Number
// @IN-LAB
printf("Add a Number\n");
printf("============\n");
scanf("%d", &phone);
for (i = 0; i < size; i++) {
decompose(phone, &aaa, &ppp, &llll);
phoneNumber[i] = phone;
}
default:
printf("Invalid menu option\n");
break;
}
} while (option != 0);
return 0;
}
私の答えへの追加を参照してください。 –
改造を保存して削除してください。答えはコメントではありません。 –