gpt4 book ai didi

C 编程函数调用返回值

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

我是一名大学生,正在学习软件工程第一年。我现在是学期的第四周,在编程课上遇到了麻烦。目前,我接到了这个作业,其中给了我一个名为“getNum()”的函数,我必须在另一个函数中使用它,程序用户将输入一个数字和我编程的函数(必须命名为 isOdd( )) 将确定该数字是奇数还是偶数。然后主函数将打印该数字是奇数还是偶数。这是我的教授的措辞方式:

" Write a program that uses the getNum() function provided to you in Assignment 2 to get anumber from the user (prompting them first, as always). Create and use a function called isOddwith parameters (the number) and return values (1 ifthe number is odd, 0 if the number is evenOR use a bool or boolean data type, your choice) to determine if thenumber is odd. In main(), tell the user (by displaying using printf()or cout) whether the number is evenor odd."

现在,我遇到的问题是理解编程,因为我对它还很陌生,有些词让我感到困惑,例如参数返回值。给你以及我到目前为止所写内容的想法,

#include <stdio.h>

int isOdd(int numInput);
int getNum(void);


int main(void)
{
int number = 0;
while (number > -1)
{
if (isOdd(0))
{
printf("The number is even.\n");
}
else if (isOdd(1))
{
printf("The number is odd.\n");
}
}

return 0;
}



int isOdd(int numInput)
{
int myNumber = 0;
printf("Please enter a number: ", numInput);
myNumber = getNum();

if (myNumber % 2 == 0)
{
myNumber == 0;
}
else
{
myNumber == 1;
}
return myNumber;
}



#pragma warning(disable: 4996)
int getNum(void)
{
/* the array is 121 bytes in size; we'll see in a later lecture how we can improve this code */
char record[121] = { 0 }; /* record stores the string */
int number = 0;
/* NOTE to student: indent and brace this function consistent with your others */
/* use fgets() to get a string from the keyboard */
fgets(record, 121, stdin);
/* extract the number from the string; sscanf() returns a number
* corresponding with the number of items it found in the string */
if (sscanf(record, "%d", &number) != 1)
{
/* if the user did not enter a number recognizable by
* the system, set number to -1 */
number = -1;
}
return number;
}

这是我写的,试图按照教授的指示做事,因为我还不知道如何正确使用 bool 值。正如您所看到的,底部是 getNum() 函数,我的教授说该函数对于此作业是必需的。到目前为止,我输入的所有内容,我被告知都是偶数。我并不是要求你们为我解决并做所有事情,但我想了解我做错了什么,我的想法做错了什么,并总体上更好地理解 future 的编程。谢谢

最佳答案

如果不知道你为什么这么做,就很难为你提供帮助。很多代码令人困惑:

    if (isOdd(0))

为什么要向 isOdd 传递零?

printf("Please enter a number: ", numInput);
myNumber = getNum();

numInput 应该是他们输入的数字还是 myNumber 应该是?

if (myNumber % 2 == 0)
{
myNumber == 0;
}

语句 myNumber == 0myNumber 与零进行比较,看看它们是否相等。它在这里没有任何用处,因为您忽略了比较结果。

关于C 编程函数调用返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60235850/

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