c语言指针如图问题。用动态内存分配malloc函数

 我来答
百度网友2018359
2016-12-03 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1458万
展开全部
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main(int argc, char *argv[]) 
{
int n;
scanf("%d",&n);
if(n<4)
{
n=4;
}
int* s;
s=(int*)malloc(sizeof(int)*n);
int i=2,pos=0;
while(pos<n)
{
int j,flag=0;
for(j=2;j<=sqrt(i);j++)
{
if(i%j==0)
{
flag=1;
break;
}
}
if(flag==0)
{
s[pos++]=i;
}
i++;
}
for(i=0;i<n;i++)
{
printf("%8lu",s[i]);
if((i+1)%5==0)
{
printf("\n");
}
}
free(s);
return 0;
}
追问
s[pos++]=i;这个什么意思;
为什么要(i+1)%5==0这个
追答
s[pos++]=i;   ---->   s[pos]=i;  pos++;  //i是找到的质数, 把它存放在s数组中, 然后s数组的位置标记往下移动一位, 以便下一个质数存放.

(i+1)%5==0 //这个是控制一行打印5个数的.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式