我是编程的新手,我必须创建一个模块化的C程序,允许用户输入1到23之间的正数,偶数,并且只接受这些值。它还必须保持数字的运行总和,只要总和小于98,就继续询问数字。它还必须跟踪输入的最大和最小数字,显示总和,最小值和最大值,并且必须允许要输入的新号码。
我在下面附上了我的程序。我不知道如何得到数字的总和或如何产生最小值和最大值。我一直在尝试使用sum += i
来查找总和,并且我一直在尝试使用变量与输入的整数进行比较以找到最小值和最大值,但是我无法使其工作。
#include <stdio.h>
main()
{
inputNumber();
sumNumber();
smallVsLarge();
moreInput();
}
inputNumber()
{
int i = 0;
while (i <= 22)
{
printf("\nPlease enter an even number between 1 and 23: ");
scanf ("%d", &i);
if (i%2==1)
{
printf ("Please enter another number: ");
scanf ("%d", &i);
}
else if ( i < 0)
{
printf("Please enter another number: ");
scanf ("%d", &i);
}
else if (i > 23)
{
printf("Please enter another number: ");
scanf ("%d", &i);
}
sumNumber(i);
}
}
sumNumber(int i)
{
int sum = 0;
int n;
for (n = 1; n <= i; n++)
{
sum = sum + n;
if (sum >= 98)
{
moreInput();
}
}
printf ("Your running total is %d.\n", sum);
smallVsLarge(i);
}
smallVsLarge(int i)
{
int min, max;
max = 0;
min = 22;
for (i = 0 ; i <= 22; i++)
{
if (i < min)
{
min = i;
}
else if (i > max)
{
max = i;
}
}
printf ("Your smallest value is %d and your largest value is %d.\n", min, max);
}
moreInput(int sum)
{
int x;
while (sum > 98)
{
printf("\n\nYou have reached the maximum sum. Enter 0 to Quit or 1 to Start Over: ");
scanf("%d",&x);
if(x==0)
{
break;
}
else if (x==1)
{
inputNumber();
}
}
}
答案 0 :(得分:0)
你在函数(被调用者)中创建的stuff
在返回到调用它的位置时将被释放,除了你明确返回给调用者的内容。
ANSI C(如果我没记错的话,C90)引入了函数声明。例如,如果你计划有一个函数sum,它将接受一个参数并返回总和,你可以在程序的开头为它写一个原型,如下所示
int sum(int);
/* This just says the function sum will take an argument of type integer and
* it returns an integer.
*/
如果您在开始时,在定义函数的位置执行此操作,您将清楚地了解如何根据所采用的参数数量以及应该的参数来定义它。返回。