gpt4 book ai didi

c - 结构与类型 "long long"的参数不兼容

转载 作者:行者123 更新时间:2023-11-30 14:59:21 26 4
gpt4 key购买 nike

我这里有一个用 C 语言编写的简单电话簿应用程序,用于实验室作业。但是我遇到了麻烦,它无法编译 - 我收到错误“struct PhoneBook_Contacts”与“long long”类型的参数不兼容。我不确定如何更改或修复此问题,我是 C 的初学者。错误位于第 37 行。如果您可以提供帮助,请告诉我。我知道错误是什么,只是不知道如何修复它。如果可以的话请让我确切地知道在哪一行要更改什么:D

提前致谢

#include <stdio.h>
#include <stdlib.h>

#define SIZE 3

void decompose(long long phone_number, int *area, int *prefix, int *lineno);

void decompose(long long phone_number, int *area, int *prefix, int *lineno) {
*area = (int)(phone_number / (10000000));
*prefix = (int)((phone_number % (10000000) / 10000));
*lineno = (int)(phone_number % (10000));
}


struct PhoneBook_Contacts
{
char FirstName[20]; //Entered First Name
char LastName[20]; //Entered Last Name
char PhoneNumber[20]; //Phone Number
}; //TypeDef to Modify structure name



//Begin main function
int main(void)
{
int area, prefix, lineno;
int counter = 0;
int iSelection = 0; //Variable to use to select menu choice//Global counter variable used to keep track of number of contacts
//phone *phonebook; //Phonebook instance
//phonebook = (phone*)malloc(sizeof(phone) * 1); //Allocate memory for contacts
struct PhoneBook_Contacts phonebook[3];



printf("---=== Phone Numbers ===---\n\n");


while (iSelection <= 4)
{

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", &iSelection);
printf("\n");

// Add Friend
if (iSelection == 2)
{
if (counter == 3) {
printf("ERROR!!! Phone Number List is Full\n");
printf("\n");
}
else {
printf("Add a Number\n");
printf("============\n");
scanf("%s", phonebook[counter].PhoneNumber);
printf("\n");
counter++;
}
} //End if
//printf("%d\n", iSelection);
//Print Phonebook Entries
if (iSelection == 1)
{
int x = 0;
printf("Phone Numbers\n");
printf("==============\n");
for (x = 0; x < counter; x++) //For loop to print entries
{
decompose(phonebook[x], &area, &prefix, &lineno);
printf("%s\n", phonebook[x].PhoneNumber); //Contact's Phone Number
printf("%d%d%d", area, prefix, lineno);
printf("\n");
}
//printf("%d%d%d", area, prefix, lineno);
//printf("\n");

//End for loop
} //End if

//Exit Application
if (iSelection == 0)
{
printf("Exiting Phone Number App. Good Bye!!!\n");
break;
} //End if

} //End while
return 0;
} //End main function

最佳答案

第一个参数的类型为long long

void decompose(long long phone_number, int *area, int *prefix, int *lineno)

这不是很长,是一个 struct PhoneBook_Contacts

struct PhoneBook_Contacts phonebook[3];

所以你不能使用电话簿之类的参数。

decompose(phonebook[x], &area, &prefix, &lineno);

但这没关系。

void decompose(struct PhoneBook_Contacts phone_number, int* area, int* prefix, int* lineno)

您的划分也有问题。第一个是因为您需要使用 phone_number.PhoneNumber 第二个是因为 PhoneNumber 是 char 而不是 int,第三个...那是给您的...

关于c - 结构与类型 "long long"的参数不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42848014/

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