gpt4 book ai didi

c - 将引用值存储在数组中

转载 作者:行者123 更新时间:2023-11-30 16:48:44 25 4
gpt4 key购买 nike

我不知道如何将电话变量存储到数组中并将其打印在第一个 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;
}

最佳答案

当您输入电话号码时,您会将其分成几个组成部分,并将它们保存到 aaapppllll 中。然后,将完整号码保存到 phoneNumber 的所有 3 个元素中。每输入一个新数字,您都会重复该过程,覆盖所有这些变量以前的内容。

通过查看代码,您可以为区号、前缀和线路值创建并行数组。或者,更好的是,创建一个包含这些字段的 struct,例如:

struct phoneNumber {
int areaCode;
int prefix;
int line;
}

并创建一个由这些结构组成的数组:structphoneNumberphoneNumbers[size]。当您输入新的电话号码时,将各个部分保存到数组中最后一个未使用的条目中。

关于c - 将引用值存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42847418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com