C##初学者 求大神帮忙解决一下Id returned 1exid status

新人没有C币请见谅 帮助之恩择日再还
题目:

题目内容:

我们认为2是第一个素数,3是第二个素数,5是第三个素数,依次类推。

现在,给定两个整数n和m,0<n<=m<=200,你的程序要计算第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

注意:是第n个素数到第m个素数,不是n和m之间的素数!

输入格式:

两个正整数,第一个表示n,第二个表示m。

输出格式:

一个整数,表示第n个素数到第m个素数之间所有的素数的和,包括第n个素数和第m个素数。

输入样例:

2 4

输出样例:

15

时间限制:500ms内存限制:32000kb

这是一道在mooc上的练习题
我做的是:
#include
int main ()
{
int m,n,i;
int x=2;
int sub=0;
int cnt=0;
int subm,subn;
scanf ("%d d",&m,&n);
do{
int ture=1;
for(i=2;i<x;i++){
if(x%i==0){
ture=0;
break;
}
}
if(ture){
sub+=x;
if(cnt+1==n){
subm=sub;
}
cnt++;
}
x++;
}while(cnt!=n);
subn=sub;
printf("%d",subn-subm);
return 0;
}
用的编译器是devc++ 一直提示Id returned 1exid status,无法编译;
然后用CFREE试了一下,可以编译,但是输入m和n两个数据后,一直没有输出;
我想了半天没有想到原因,求大神帮忙,不胜感激
图片说明

i是2 i<2就可以循环 那不得死循环呀 3以上的数都大于2 取余就是2的倍数都可以 2的倍数很多耶

1、有c++或cpp(p为plus缩写即"+").有c#没有c##
2、我这个程序是在c++运行的,c#我有但是我还不习惯。
3、scanf ("%d d",&m,&n);//少了一个%
4、true这个变量看起来有点多余;如果要用建议bool IsPrimeNumber(是否为质数)初始化false。
5、我不习惯do-while,所以改成了for(i)for(j)循环嵌套。

 #include "stdio.h"
int main ()
{
int m,n; 
int subm=0,subn=0,cnt=0;
int i,j;
scanf ("%d %d",&m,&n);

if(m>200||n>200)
printf("请输入200以内的整数");
else
{
for(i=2;i<=n;i++)
    {   cnt=0;
        for(j=2;j<i-1;j++)
        {
            if(i%j==0)
                cnt++;
        }
        if(cnt==0&&i<m)
            subm+=i;
        if(cnt==0)
        subn+=i;
    }

}
printf("%d",subn-subm);
return 0;
}