Cannot convert float to float (calling function values inside another function

Feb 5, 2017 at 12:35am
Hello all, first time poster here. I keep getting the following error when trying to calculate the average on line 142/143.
assignment3.1.cpp: In function ‘int main()’:
assignment3.1.cpp:142:97: error: cannot convert ‘float (*)(float, float, float, float)’ to ‘float’ for argument ‘1’ to ‘float reccalc(float, float, float)’
cout << "Your grade in the recitations section was:" << reccalc (designcalc, quizcalc, critcalc) << "%" << endl;


I am trying to make a simple grade calculator. I have only been using c++ for a couple of weeks so go easy on me :)



1 #include <iostream>
2 #include <cmath>
3
4 using namespace std;
5
6
7
8 float labcalc (float lab1, float lab2, float lab3, float lab4, float lab5, float lab6, float lab7, float lab8, float lab9, float lab10);
9
10 float examcalc (float exam1, float exam2);
11
12 float designcalc (float design1, float design2, float design3, float design4);
13
14 float quizcalc (float quiz1, float quiz2, float quiz3, float quiz4, float quiz5, float quiz6, float quiz7, float quiz8, float quiz9, float quiz10) ;
15
16 float critcalc (float crit1, float crit2, float crit3, float crit4, float crit5, float crit6, float crit7, float crit8);
17
18 float reccalc (float designcalc, float quizcalc, float critcalc);
19
20 int main(){
21
22
23 int choice;
24
25 float lab1, lab2, lab3, lab4, lab5, lab6, lab7, lab8, lab9, lab10;
26 float labsfinal;
27
28
29 float exam1, exam2, finalexam;
30 float examsfinal;
31
32
33 float design1, design2, design3, design4;
34 float designtotal;
35
36
37 float quiz1, quiz2, quiz3, quiz4, quiz5, quiz6, quiz7, quiz8, quiz9, quiz10;
38 float quiztotal;
39
40
41 float crit1, crit2, crit3, crit4, crit5, crit6, crit7, crit8;
42 float crittotal;
43
44
45 cout << "What grade would you like to calculate?\nPress 1 for labs\nPress 2 for Exams\nPress 3 for Recitations\nPress 4 for Orverall grade\nPress 5 for assignments\nPress 6 to quit" << endl;
46 cin >> choice;
47
48 if (choice == 1){
49
50 cout << "How many points did you get on the first lab" << endl;
51 cin >> lab1;
52 cout << "Second lab?" << endl;
53 cin >> lab2;
54 cout << "Third lab?" << endl;
55 cin >> lab3;
56 cout << "Fourth lab?" << endl;
57 cin >> lab4;
58 cout << "Fifth lab?" << endl;
59 cin >> lab5;
60 cout << "Sixth lab?" << endl;
61 cin >> lab6;
62 cout << "Seventh lab?" << endl;
63 cin >> lab7;
64 cout << "Eigth lab?" << endl;
65 cin >> lab8;
66 cout << "Ninth lab?" << endl;
67 cin >> lab9;
68 cout << "Tenth Lab?" << endl;
69 cin >> lab10;
70
71 cout << "Your grade in the labs section of the class is:" << labcalc (lab1, lab2, lab3, lab4, lab5, lab6, lab7, lab8, lab9, lab10) << "%" << endl;
72 //cin >> labsfinal;
73 }
74
75 else if (choice == 2) {
76
77 cout << "How many points did you get on the first exam?" << endl;
78 cin >> exam1;
79 cout << "How many points did you get on the second exam?" << endl;
80 cin >> exam2;
81 //cout << "How many points did you get on the final?" << endl;
82 //cin >> finalexam;
83
84 cout << "Your grade on exams is:" << examcalc (exam1, exam2) << "%" << endl;
85 //cin >> labsfinal;
86 }
87
88 else if (choice == 3){
89
90 cout << "What was your grade on design 1?" << endl;
91 cin >> design1;
92 cout << "What was your grade on design 2?" << endl;
93 cin >> design2;
94 cout << "What was your grade on design 3?" << endl;
95 cin >> design3;
96 cout << "What was your grade on design 4?" << endl;
97 cin >> design4;
98
99 cout << "Your grade in design is:" << designcalc (design1, design2, design3, design4) << "%"<< endl;
100
101
102 cout << "What was your grade on quiz 1?" << endl;
103 cin >> quiz1;
104 cout << "What was your grade on quiz 2?" << endl;
105 cin >> quiz2;
106 cout << "What was your grade on quiz 3?" << endl;
107 cin >> quiz3;
108 cout << "What was your grade on quiz 4?" << endl;
109 cin >> quiz4;
110 cout << "What was your grade on quiz 5?" << endl;
111 cin >> quiz5;
112 cout << "What was your grade on quiz 6?" << endl;
113 cin >> quiz6;
114 cout << "What was your grade on quiz 7?" << endl;
115 cin >> quiz7;
116 cout << "What was your grade on quiz 8?" << endl;
117 cin >> quiz8;
118 cout << "What was your grade on quiz 9?" << endl;
119 cin >> quiz9;
120 cout << "What was your grade on quiz 10?" << endl;
121
122 cout << "Your grade in quiz is:" << quizcalc (quiz1, quiz2, quiz3, quiz4, quiz5, quiz6, quiz7, quiz8, quiz9, quiz10) << "%" << endl;
123
124 cout << "What was your grade on critique 1?" << endl;
125 cin >> crit1;
126 cout << "What was your grade on critique 2?" << endl;
127 cin >> crit2;
128 cout << "What was your grade on critique 3?" << endl;
129 cin >> crit3;
130 cout << "What was your grade on critique 4?" << endl;
131 cin >> crit4;
132 cout << "What was your grade on critique 5?" << endl;
133 cin >> crit5;
134 cout << "What was your grade on critique 6?" << endl;
135 cin >> crit6;
136 cout << "What was your grade on critique 7?" << endl;
137 cin >> crit7;
138 cout << "What was your grade on critique 8?" << endl;
139 cin >> crit8;
140
141 cout << "Your grade in critique was:" << critcalc (crit1, crit2, crit3, crit4, crit5, crit6, crit7, crit8) << "%" << endl;
142 cout << "Your grade in the recitations section was:" << reccalc (designcalc, quizcalc, critcalc) << "%" << endl;
143 //cout << "Your grade in the recitations was:" (designcalc (design1, design2, design3, design4)*.40)+(quizcalc (quiz1, quiz2, quiz3, quiz4 , quiz5, quiz6, quiz7, quiz8, quiz9, quiz10)*.40)+(critcalc (crit1, crit2, crit3, crit4, crit5, crit6, crit7, crit8)*.20)/3 << "%" << endl;
144
145 }
146
147
148
149 return 0;
150
151 }
152
153
154
155 float labcalc (float lab1, float lab2, float lab3, float lab4, float lab5, float lab6, float lab7, float lab8, float lab9, float lab10){
156
157 return ((lab1 + lab2 + lab3 + lab4 + lab5 + lab6 + lab7 + lab8 +lab9 +lab10)/10)*10;
158 }
159
160 float examcalc (float exam1, float exam2){
161
162 return ((exam1 + exam2)/2);
163 }
164
165 float designcalc (float design1, float design2, float design3, float design4){
166
167 return ((design1 + design2 + design3 + design4)/4);
168 }
169
170
171 //float quizcalc (float quiz1, float quiz2, float quiz3, float quiz4){
172 //
173 //return ((quiz1 + quiz2 + quiz3 + quiz4 + quiz5 + quiz6 +quiz7 + quiz8 +quiz9 + quiz10)/10);
174 //}
175
176
177 //float designcalc (float design1, float design2, float design3, float design4){
178 //
179 //return ((design1 + design2 + design3 + design4)/4);
180 //}
181
182 float quizcalc (float quiz1, float quiz2, float quiz3, float quiz4, float quiz5, float quiz6, float quiz7, float quiz8, float quiz9, float quiz10) {
183
184 return ((quiz1 + quiz2 + quiz3 +quiz4 + quiz5 + quiz6 + quiz7 + quiz8 + quiz9 + quiz10)/10);
185 }
186
187 float critcalc (float crit1, float crit2, float crit3, float crit4, float crit5, float crit6, float crit7, float crit8){
188
189 return ((crit1 + crit2 + crit3 + crit4 + crit5 + crit6 + crit7 + crit8)/8);
190 }
191
192 float reccalc (float designcalc, float quizcalc, float critcalc){
193
194 return (((designcalc * .40)+(quizcalc * .40) + (critcalc * .20))/3);
195 }
196
197
198
199

Feb 5, 2017 at 12:37am
Please use code tags. It's really hard to read your code
Feb 5, 2017 at 1:15am
designcalc is a function, and you're trying to pass it to a function that expects a number. Basically you're doing something equivalent to this:

1
2
3
4
float f();
float g(float);

g(f);
Topic archived. No new replies allowed.