本周基本上我的作业是:
写三个功能: 当提供两个整数时,返回下部。 另一个返回两个提供的整数中的较高者。 第三个返回两个提供的整数的平均值 要测试您的函数,请编写一个程序,提示输入两个整数然后 打印出较低的,然后是较高的,然后是平均值。 您的程序应该包含函数原型。
无论如何,正如我之前提到的,我似乎对这个模块有很大的困难 - 尽管这是我的最爱。
所以这是我的代码到目前为止(令人尴尬)。如果我的逻辑应该高于或低于int主线,我无法解决。总的来说真的很困惑。我一直在努力学习这个模块(远远超过所有其他模块)但仍然感觉像是一个迷失的孩子。
#include <stdio.h>
#include <stdlib.h>
int getLow(int num1 int num2);
int getHigh(int num1 int num2);
int getAvg(int num1 int num2);
int main()
{
int lores, hires, avres;
printf("Enter two integers:\n");
scanf("%i %i", &num1, &num2);
int getLow(int num1, int num2){
if (num1 < num2){
printf("%i is the lowest\n", num1);}
if (num1 > num2){
printf("%i is the lowest\n", num2);}}
int getLow(int num1, int num2){
if (num1 > num2){
printf("%i is the highest\n", num1);}
if (num1 < num2){
printf("%i is the highest\n", num2);}}
int getAvg(int num1, int num2)
getAvg = (num1 + num2) / 2;
printf("%i is the average of the two integers\n", getAvg);
return 0;
}
答案 0 :(得分:2)
#include <stdio.h>
#include <stdlib.h>
int getLow(int num1, int num2);
int getHigh(int num1, int num2);
float getAvg(int num1, int num2);
int main()
{
int num1, num2, avres;
printf("Enter two integers:\n");
scanf("%i %i", &num1, &num2);
float avg = getAvg(num1, num2);
printf("The smallest number is %d", getLow(num1, num2));
printf("The largest number is %d", getHigh(num1, num2));
printf("%f is the average of the two integers\n", avg);
return 0;
}
float getAvg(int num1, int num2)
{
return (num1 + num2) / 2.;
}
int getLow(int num1, int num2)
{
if (num1 < num2)
{
return num1;
}
else
{
return num2;
}
}
int getHigh(int num1, int num2)
{
if (num1 > num2)
{
return num1;
}
else
{
return num2;
}
}
答案 1 :(得分:1)
#include <stdio.h>
int getLow(int num1, int num2);
int getHigh(int num1, int num2);
float getAvg(int num1, int num2);
int main()
{
float avg;
int num1, num2, low, high;
printf("Enter two integers:\n");
scanf("%i %i", &num1, &num2);
low=getLow(num1, num2);
high=getHigh(num1, num2);
avg=getAvg(num1, num2);
printf("Low: %d, High: %d, Average: %f", low, high, avg);
return 0;
}
int getLow(int num1, int num2){
if (num1 < num2)
return num1;
return num2;
}
int getHigh(int num1, int num2){
if (num1 > num2)
return num1;
return num2;
}
float getAvg(int num1, int num2){
return (float)(num1 + num2) / 2;
}
输出:
Enter two integers:
5 6
Low: 5, High: 6, Average: 5.500000
答案 2 :(得分:1)
C不允许嵌套函数 - 您不能在getLow
的正文中定义 getHigh
,getAvg
或main
函数定义可能出现在其调用者之前(getHigh
)或之后(getLow
):
int getHigh( int num1, int num2 ) // function definition, also serves
{ // as a function declaration
return num1 > num2 ? num1 : num2;
}
int getLow( int num1, int num2 ); // function declaration
int main( void )
{
double getAvg( int num1, int num2 ); // function declaration
...
high = getHigh( num1, num2 ); // function call
low = getLow( num1, num2 ); // function call
avg = getAvg( num1, num2 ); // function call
...
}
int getLow( int num1, int num2 ) // function definition
{
return num1 < num2 ? num1 : num2;
}
函数声明可能会出现在其调用方(getAvg
)内或之前(getLow
)。
在调用函数之前,函数声明必须可见。由于函数定义也可以作为声明,我通常会在调用者之前定义一个函数(如果它们都在同一个源文件中),所以我的代码往往会从下往上读取。