请大家帮忙看下小弟我下面的程序错在哪里

请大家帮忙看下我下面的程序错在哪里?
请大家帮忙看下小弟我下面的程序错在哪里请大家帮忙看下小弟我下面的程序错在哪里






//输入两个整数,并且使二者的商保留小数点后5位 2014-7-8

#include <stdio.h>
void main()
{ float m,n;

while(1)
{ printf("请输入两个整数,并用空格分隔开:\n");
scanf("%d %d",&m,&n);
                                               //如何判断输入的数是整数?
if (m==(int)m*10/10&&n==(int)n*10/10)
{ printf("m/n=%.5d\n",(float)m/n);
break;
}

else
printf("错误!输入值中含有非整数!请重新输入!\n");
}
system("pause");
}
------解决方案--------------------
int m,n;
char c;
while (1) {
    printf("请输入两个整数,并用空格分隔开:");fflush(stdout);
    rewind(stdin);
    if (3==scanf("%d%d%c",&m,&n,&c)) {
        if (c=='\n') {
            printf("m/n=%d/%d=%g\n",m,n,(float)m/n);
            break;
        }
    }
    printf("错误!输入值中含有非整数!请重新输入!\n");
}

------解决方案--------------------
在每个最后不带\n的printf后面加fflush(stdout);
在每个不想受接收缓冲区旧内容影响的scanf前面加rewind(stdin);
另外请检查scanf的返回值。

------解决方案--------------------
#include <stdio.h>
void main()
{ float m,n;

while(1)
{ printf("请输入两个整数,并用空格分隔开:\n");
scanf("%f %f",&m,&n);
                                               //如何判断输入的数是整数?                                              
if (m==(int)m*10/10&&n==(int)n*10/10)
{ printf("m/n=%.5f\n",(float)m/n);
break;
}

else
printf("错误!输入值中含有非整数!请重新输入!\n");
}
system("pause");
}

/*
m 和 n是 float 形
scanf("%d %d",&m,&n);    中的 %d    改成 %f
printf("m/n=%.5d\n",(float)m/n);  看你意思应该要输出float形的吧   把d  也改成 f

// m*10/10 可以把m小数部分变成0  例如 m = 6.9    m*10(69)/10 = 6  (整数除整数结果一定是整数)
// 其实可以写成 if (m == (int)m && n == (int)n)   
*/

------解决方案--------------------
printf里面的%和变量的一一对应关系
scanf里面的%和变量以及变量前加不加&的一一对应关系
是C代码中非常容易出错的地方,而且通常编译还不出错。
所以在编译源代码之前值得专门仔细检查一遍甚至多遍。

------解决方案--------------------
明明提示的输入两个整数,输入用的也是%d,变量也是整形的,非要输入小数。你是自己玩自己么?
------解决方案--------------------
float用f不是d,有警告