gpt4 book ai didi

c - 从c中的函数返回整数数组值

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

我在完成一项任务时真的很挣扎。我已经搜索过互联网和 youtube,但我仍然一无所知。该程序总共有 5 个功能,但我停留在第一个。程序应使用一维数组读取用户输入的 4 位代码(必须是 4 个单位数字)。当我尝试从函数返回该代码时,我的问题出现了。我得到的只是第一个数字。我知道你不能从 c 中的函数返回数组,并且必须使用引用传递,这就是我遇到的问题,我不完全理解如何做到这一点。我的代码以及我收到的输出如下。

您能给我的任何帮助将不胜感激,正如我在我真正陷入困境之前所说的那样。

//program to enter a code and return the code to main

#include <stdio.h>
#include <stdlib.h>
#define CODE 4

//function prototypes
int enter_code(int* code_arr);

main()
{
int code =0;
int option;
int exit1=0;


do
{

//print the menu on screen
printf("\t \t \t1 - Enter the access code\n");
printf("\t \t \t2 - Encrypt code and verify\n");
printf("\t \t \t3 - Exit the program \n");

scanf("%d",& option);

switch(option)
{
case 1:
{
//call enter_code function
code= enter_code(&code);
printf("\n The returned code is %d \n",code);

break;
}

case 2:
{
break;

}

case 3:
{
// prompt user to a key to exit
printf("\n You choose to exit the program.\n Press a key to exit\n ");
getchar();
exit(0);

break;

}

default:
{
printf("You must enter a number between 1-5\n");
}


}

}//end do()

while(exit1!=5 & exit1 <6);


}//end main


int enter_code (int* code_arr)
{
int password[CODE];

int i;

printf("Enter your 4 digit code \n");
for(i=0;i<CODE;i++)
{
scanf("%d",&password[i]);
}

printf("The code entered is:");
for(i=0;i<CODE;i++)
{
printf("%d",password[i]);
}

return(*password); //how do i return the full array

}

最佳答案

您的函数可以通过作为参数传递的数组返回代码,并使用函数返回值来指示错误。您也可以将其传递给另一个函数。您的简化代码:

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

#define CODE 4

int enter_code (int* code_arr)
{
int i;
printf("Enter your 4 digit code\n");
for(i=0;i<CODE;i++)
if (scanf("%d", &code_arr[i]) != 1)
return 0;
return 1;
}

int check_code (int* pass_code, int* user_code)
{
int i;
for(i=0;i<CODE;i++)
if (pass_code[i] != user_code[i])
return 0;
return 1;
}

int main(void)
{
int password[CODE] = {0}, passOK[CODE] = {42,24,0,12345678};
if (!enter_code(password))
printf ("Bad password entry\n");
else {
if (check_code(passOK, password))
printf("You unlocked the vault\n");
else
printf("You don't know the passcode\n");
}
return 0;
}

程序输出:

Enter your 4 digit code
42
24
0
12345678
You unlocked the vault

关于c - 从c中的函数返回整数数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28885773/

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