关于C语言函数调用的问题!

从键盘上输入整数m和k,将大于且紧靠m的k个素数存入数组xx中,将结果显示在屏幕上。
要求:
(1)在num函数中完成找出紧靠m的k个素数,并存入数组xx中。函数num的定义形式为:void num( int m, int k, int xx[])
(2)main函数完成数据的输入和输出。

#include<stdio.h>
#include<math.h>
void n(int m,int k,int xx[])
{
int i,j,c=0,d=0,a;
int *p=xx;
for(i=m;;i++)
{

for(j=2;j<=int(sqrt(i));j++)
{

if(i%j==0)
c++;

}
if(c==0)
{
p[d]=i;
d++;
}
if(d==(k-1))
break;
}

}
void main()
{
int m,k,i;
int xx[100]={0};
printf("qingshuru:");
scanf("%d",&m);
scanf("%d",&k);
n(m,k,xx);
for(i=0;i<k;i++)
printf("%d",xx[i]);
}

帮帮忙呀,哪里错了。
谢谢1楼的提醒,我已经修改,但程序还是运行不下去。

第1个回答  推荐于2016-09-12
#include<stdio.h>
#include<math.h>
int d=0; ///////////
void n(int m,int k,int xx[])
{
int i,j,c=0,a;
int *p=xx;
for(i=m+1;;i++) //////////
{
c=0;

for(j=2;j<=int(sqrt(i));j++)
{

if(i%j==0)
c++;

}
if(c==0)
{
p[d]=i;
d++;
}
if(d==(k)) //////
break; //
}

}
void main()
{
int m,k,i;
int xx[100]={0};
printf("qingshuru:");
scanf("%d",&m);
scanf("%d",&k);
n(m,k,xx);
for(i=0;i<d;i++) //////////
printf("%-4d",xx[i]); ////////////
}本回答被提问者采纳
第2个回答  2009-10-24
函数部分的int(sqrt(i))改成(int)sqrt(i)...C语言的强制类型转换..必须是给类型加上括号..而不是数字...
相似回答