计算最大的三位约数?C

题目内容:
从键盘任意输入一个数n(1000<=n<=1000000),编程计算并输出n的所有约数中最大的三位数(即最大的三位约数)。如果n小于1000或者大于1000000,则输出“Input error!”。
函数原型:int Func(int n);
函数功能:计算n的所有约数中最大的三位数

#include <stdio.h>
int Func(int n);
main()
{
   int n;
   printf("Input n:");
   scanf("%d", &n);
   if (n < 1000 || n > 1000000)
   {
       printf("Input error!");
   }
   printf("%d\n", Func(n));
 }

int Func(int n)
{
    int m;
    for (m = 100; m < 1000; m++)
    {
        if(n % m == 0)
        {
            printf("%d", m);
         }
    }
}


不清楚错在哪里?是循环出问题么?

为什么不从999开始往下面减呢,输出最大的三位数。当有最大的就跳出!

printf("%d", m); 改成return m

你定义的int类型函数,你没有返回值,main中和int中都输出了。 你这程序求的是最小的三位数。下面我改了一下:
#include
int Func(int n);
main()
{
int n;
printf("Input n:");
scanf("%d", &n);
if (n < 1000 || n > 1000000)
{
printf("Input error!");
}
printf("%d\n", Func(n));
}

int Func(int n)
{
int m;
for (m = 999; m >=100; m--)
{
if(n % m == 0)
{
return m;
}
}
}

函数要有返回值...应该考虑没有三位数的约数的情况...