我的任务是找到多少个3位数字,其2位数字(10-90)小于3位数字(100-900)。我尝试使用一个函数来执行此操作,结果得到8(这显然是不正确的。)对我可能会出错的任何帮助吗?
#include<stdio.h>
int function(int x, int i)
{
int digb, digc;
for(x=100;x<=999;x++)
{
digb=(x%100)/10;
digc=x/100;
if(digb<digc)
i=i+1;
}
return i;
}
int main()
{
int x, i;
function(x,i);
printf("There are %d numbers",i);
}
您的函数function()
(应该有一个更好的名字...)正在将两个值用作参数,并正在返回一个值。返回值时,必须通过将function(x,i)
行替换为i = function(x,i)
来检索它,这会将函数的返回值放入i
变量中。您也可以将i
作为函数的指针传递,这将使您不必更改行。该行应为function(x, &i)
,原型应为void function(int x, int *i)
,并且每个i
应替换为*i
。