C程序计算avg等

时间:2011-10-05 19:15:36

标签: c

我今天在课堂上写了这段代码,老师帮助我,但我现在回家了,需要指导,我不知道接下来我应该做什么来编译至少

目标是:

创建一个菜单 输入一个数字(选项A) 显示平均值(选项B) 显示最高和最低数字(选项C和D) 显示输入的所有数字的总和(选项E) 显示输入的总数量(选项F) 并退出(选项G)

这是我到目前为止所做的,如果它凌乱,我道歉。

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

//int getNumber (aNumber) {
 //   printf("Enter an integer between 0 and 1000.\n");
//    scanf("%i", &aNumber);
 //   int result;
 //   }
char getMenuLetter();
int getNumber();
//declare variables

int aNumber = 0;
float avg = 0.0;
int high = -1;
int low = 1001;
int total = 0;
int count = 0;
char getChoice = 'x';

int main() {

//proptotype functions



do {
    getChoice = getMenuLetter();

    switch (getChoice)
           case 'A':
           aNumber = getNumber();
           count++;
           total += aNumber;
           low = testLow(aNumber, low)
           high = testHigh(aNumber, high);
                        break;
           case 'B';
           avg = (double) total/count; //display avg
           printf("The average is %.2f", avg);
                       break;
           case 'C':
           high = getHigh();
           printf("The highest value of all the numbers entered is %i.\n", high); //display highest number
                       break;
           case 'D':
           low = getLow;
           printf("The lowest value of all the numbers entered is %i.\n", low); //displayer lowest value
                       break;
           case 'E':
           printf("The total of all the numbers entered is %i.\n", total);
                       break;
           case 'F':
           printf("The amount of numbers entered so far is %i.\n", count);
           case 'G';
                       break: //end switch


} while (userChoice != 'G');

}

int testLow(int n) {
    int result;

    if (n < low)
          result = n;
    else

    return 0;

} //End of main

char getMenuLetter() {
     char result;
     system("cls") //clear the screen.

     printf("*************************************************\n");
     printf("A) Enter a number between 0 and 1,000\n");
     printf("B) Display the average\n");
     printf("C) Display the highest value entered\n");
     printf("D) Display the lowest value entered\n");
     printf("E) Display the sum of all numbers\n");
     printf("F) Display the count of all numbers entered\n");
     printf("G) Quit the program\n");
     printf("*************************************************\n");
     scanf("%c", &result);
     result =toupper(result);
///print f %c 
//system pause

if (result != 'A' || result != 'B' || result !='C' || result !='D' || result !='E' || result != 'F' || result !='G'){
            printf("You must enter A - G only! \n)");
            system("pause");
 } //end if

} while(result != 'A' || result != 'B' || result !='C' || result !='D' || result !='E' || result != 'F' || result !='G');
     return result;
     //end of GetMenuLetter

2 个答案:

答案 0 :(得分:1)

以下是我的建议:

  1. 首先编译您的程序。您的编译器将返回大部分错误(至少重要的错误)。
  2. 注意你对卷曲基础的使用。在C(以及许多其他语言)中,编译器将处理线性跟随其他行的行。花括号引起多维解释。作为编程的初学者,你应该尽可能练习使用花括号,这样你就养成了分离指令的习惯。此外,您应该密切关注匹配您的开放花括号与闭合的花括号。有关详细信息,请参阅C Standard, 6.8: Statements and Blocks
  3. 您的switch()广告块应以default:值结尾,以防万一您遇到意外情况。
  4. 我不建议将您的函数原型放在main()过程中。它与范围有关。请从标准的第6.2.1节中查看。
  5.   

    2对于标识符指定的每个不同实体,标识符   仅在程序文本的区域内可见(即,可以使用)   称其范围。由同一标识符指定的不同实体   要么具有不同的范围,要么具有不同的名称空间。那里   有四种范围:功能,文件,块和功能   原型。 (函数原型是函数的声明   声明其参数的类型。)

    我不知道还能告诉你什么。试试我的建议。请确保您阅读标准。作为最后的建议:尝试以更有序的方式编程。如果您希望在完成时想要创建可以阅读的内容,那么您的代码看起来不会那么草率。

    祝你好运。

答案 1 :(得分:0)

一些提示:

  • 从第一个开始检查编译器错误和警告。
  • 启用编译器的其他警告(例如gcc的参数-W -Wall)。
  • C中“;”和“:”之间存在显着差异。
  • switch语句的正文必须用大括号括起来。