2010-04-24 52 views
-3
#include <iostream> 
    #include <fstream> 
    using namespace std; 
    int calculate_total(int exam1[], int exam2[], int exam3[]); // function that calcualates grades to see how many 90,80,70,60 

    int exam1[100];// array that can hold 100 numbers for 1st column 
    int exam2[100];// array that can hold 100 numbers for 2nd column 
    int exam3[100];// array that can hold 100 numbers for 3rd column 

// here i am passing an array into the function calcualate_total 
    int calculate_total(exam1[],exam2[],exam3[]) 
    { 
    int above90=0, above80=0, above70=0, above60=0; 
    if((num<=90) && (num >=100)) 
    { 
     above90++; 
     { 
     if((num<=80) && (num >=89)) 
     { 
     above80++; 
     { 
     if((num<=70) && (num >=79)) 
     { 
      above70++; 
      { 
      if((num<=60) && (num >=69)) 
      { 
      above60++; 
      } 
      } 
     } 
     } 
     } 
     } 
    } 
    } 
+4

如果您接受某些问题的答案,则可能会得到更好的答复。 – 2010-04-24 21:22:29

+0

考虑减少嵌套的if语句,这会使代码流很难阅读。 – JRL 2010-04-24 21:37:00

+0

0票?不要忘记对有用答案进行投票,请参阅常见问题解答以了解更多详情。 – 2010-04-24 21:45:41

回答

0

使用矢量。 您可以像数组一样初始化矢量。 该向量有一个方法给你的元素数量

+0

猜猜矢量是不是这种作业的东西,因为使用STL不知道纯指针是废话 – 2010-04-24 21:32:05

+0

yep还没有学习向量我们只是在C + +数组,我即将学习如何读取文件到数组中。我很想看看这个syntex,看看我能不能从中找出它 – user320950 2010-04-24 21:50:35

+0

在函数调用的内部,在运行时,你只有一个指针,所以没有办法知道数组中有多少个元素。运行时没有定义。 唯一接近的是如果你创建一个特定的数组类型,如下所示: typedef int IntArr50 [50]; 声明你的参数为IntArr50 然后在函数do sizeof(IntArr50/sizeof(int))中确定大小。但是这将始终返回50,因为您从类型中静态获取信息。 除此之外,现在只有这样做了。 – zumalifeguard 2010-04-24 23:15:25

1

通过指向int数组的指针。 (这里是定义)

int calculate_total(int *exam1, int *exam2, int *exam3) 

如果你想调用这个函数,你必须在每个参数中push出examX数组的地址。如果你想获取元素,你必须添加到凝视阵列地址,一个元素偏移地址并从她那里获得价值。

+0

最初的原型已经声明了一个函数,它的参数是int *' - 第一个维度总是衰减。 – 2010-04-24 21:43:27

3

而不是使用嵌套if。 使用if,else if和else。 你的程序将是干净的,并会帮助他人更好地阅读。

看起来你正在尝试创建一个频率表。 不幸的是,逻辑的代码是错误的。 当您使用&& AND 这意味着它必须满足这两个条件。 数字如何可以少于大于或等于90大于或等于100在同一时间? 可能是你正在寻找的是||这是OR。

最后你需要一个回路

相关问题