【发布时间】:2014-04-02 07:22:53
【问题描述】:
刚接触 C 和学习。我不断收到错误(C2664: 'int readScores(int,int,int)' : cannot convert argument 1 from 'int *' to 'int')。我不知道如何解决它。我试着查了一下,但不明白错误代码...... 我该如何解决? 此外,任何关于代码的指针和或/提示将不胜感激。 谢谢
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
// Functions
int readScores(int test1, int test2, int test3);
int determineGrade(int test1, int test2, int test3);
void print(int test1, int test2, int test3);
int main(void)
{
int test1;
int test2;
int test3;
readScores(&test1, &test2, &test3);
determineGrade(test1, test2, test3);
print(test1, test2, test3);
return 0;
}
void readScores(int *test1, int *test2, int *test3)
{
// Promts
printf("Hello, this program will determine");
printf("the grades of average test scores");
printf("to see if you passed or not this year.");
printf("Please enter in the three test...");
printf("Note: only enter scores that are (0-100)");
printf("Enter in test1\n");
scanf("%d", test1);
printf("Enter in test2\n");
scanf("%d", test2);
printf("Enter in test 3\n");
scanf("%d", test3);
return;
}
int determineGrade(int test1, int test2, int test3)
{
// Local declrations
int average;
// Math
average = 3 / (test1 + test2 + test3);
return average;
}
void print(int test1, int test2, int test3)
{
int Grade;
Grade = determineGrade(test1, test2, test3);
if (Grade > 90)
{
printf("Great job you have an A %d int the class\n", Grade);
return;
}
else if (70 < Grade > 90, test3)
{
if (test3 < 90)
{
printf("Good job you got a A %d\n", Grade);
return;
}
else
{
printf("Easy Beezy you got a B %d for the class\n", Grade);
return;
}
return;
}
else if (50 < Grade > 70, test2, test3)
{
Grade = 2 / (test2 + test3);
if (Grade > 70)
{
printf("You passed congrats you have a C %d for the class\n", Grade);
return;
}
else
{
printf("You have a D for the class %d\n", Grade);
return;
}
}
else if (Grade < 50)
{
printf("Yeah you might want to take this class again you have a F %d\n", Grade);
return;
}
return;
}
【问题讨论】:
-
您对
readScores的声明与您对readScores的定义不匹配。参数类型不同。甚至返回类型也不同。这是没有意义的。你试图通过做出不匹配的定义来做什么?你是代码的作者吗?
标签: c if-statement for-loop int