目标:比较输入的两个整数并输入较小的整数.如果两个整数相等,则程序发出警告并启动新循环.
平台:Visual Studio 2012.
这是我的代码:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int get_lesser(int a , int b);
int main(void)
{
int a , b;
printf("1: Enter two integers: ");
while(scanf("%d%d" , &a , &b) == 2)
{
printf("THe smaller of the two integers entered is %d.\n" , get_lesser(a , b));
printf("2: Enter two numbers: ");
}
system("pause");
return 0;
}
int get_lesser(int a , int b)
{
if(a == b)
printf("The two integers equal.\n");
else if(a > b)
return b;
else
return a;
}
Run Code Online (Sandbox Code Playgroud)
我创建了一个function-get_lesser.
我不明白的是:每当我输入两个相同的整数时,我会被告知两者中较小的一个是24. 24来自哪里?谢谢.
因为你不在这里退货:
if(a == b)
printf("The two integers equal.\n");
Run Code Online (Sandbox Code Playgroud)
如果a > b这将返回b:
else if(a > b)
return b;
Run Code Online (Sandbox Code Playgroud)
如果a < b这将返回a:
else
return a;
Run Code Online (Sandbox Code Playgroud)
但是这个语句不会从get_lesser函数中返回任何内容
if(a == b)
printf("The two integers equal.\n");
Run Code Online (Sandbox Code Playgroud)
更好的比较方法是:
int get_lesser(int a , int b)
{
if(a == b)
return 0; //Equal args
else if(a > b)
return 1; //first arg is greater
else
return -1; //second arg is greater
}
Run Code Online (Sandbox Code Playgroud)
现在使用返回值来检查返回的内容 - 注意 - 您的参数顺序在这里很重要.