2016-04-28 64 views
-2

我是编程新手,我必须创建一个模块化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

让我想起楼梯上最陡峭的台阶。 – randominstanceOfLivingThing

回答

0

stuff你在函数(被叫)创建时,它返回到它被称为除非你明确地返回给调用者那里将被释放。

另外ANSI C(如果我正确记得C90)引入了函数声明。例如,如果你计划有一个功能和将采取一个参数和返回值的总和,你可以写它的原型在节目的开头,如下面

int sum(int); 
/* This just says the function sum will take an argument of type integer and 
* it returns an integer. 
*/ 

如果你在开始做这个,在你定义函数的地方,你将清楚地知道如何根据它所需的参数数量以及它返回的内容来定义它。