有没有人看看哪里错了实在找不到哪里错了

这是一道3位数判断素数的题 并算出多少个 我不知道错哪了 为什么一直是0

没贴代码,看不到

没代码,盲猜,你把if,else写进for循环里了

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7671070
  • 这篇博客也不错, 你可以看下基于排序的滤波算法对变化缓慢的量有滤波作用
  • 除此之外, 这篇博客: 使用循环单链表来解决约瑟夫问题中的 大体思路就是用循环单链表来模拟,这样能保证删除一个节点的时候,仍然能够保持循环单列表的一个结构。这道题体现了尾指针的重要性…目前我删除一个节点通常是要知道前一个节点的指针。 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • .

    // An highlighted block
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct Lnode{
    	Lnode *next;
    	int ID;
    	int code;
    }Lnode,*LinkList;
    
    void creat_list(int n,int m,LinkList &a,LinkList &r){
    	Lnode *p=a,*q;
    	p->ID=1;
    	int num;
    	scanf("%d",&num);
    	p->code=num ;
    	for(int i=2;i<=n;i++){
    		scanf("%d",&num);
    		q=(Lnode*)malloc(sizeof(Lnode));
    		q->ID=i;
    		q->code=num; 
    		p->next=q;
    		p=p->next;
    		if(i==n){
    			q->next=a;
    			r=q;
    		}
    	}
    }
    
    void out(LinkList &a,int &m,LinkList &r){
    	Lnode *q=a,*p=r;
    	if(a->next!=a){
    	for(int i=1;i<m;i++){
    		p=p->next;
    		q=q->next;
    		r=r->next;
    	}
    	
    	printf("%d ",q->ID);
    	m=q->code;
    	p->next=q->next;
    	free(q); 
    	 
    	out(p->next,m,r);
    }
    	else printf("%d ",a->ID);
    }
    
    int main(){
    	int n,m;
    	scanf("%d%d",&n,&m);
    	LinkList a,r;
    	a=(LinkList)malloc(sizeof(Lnode));
    	r=(LinkList)malloc(sizeof(Lnode));
    	creat_list(n,m,a,r);
    	out(a,m,r);
    	return 0;
    } 
    
  • 您还可以看一下 孙玖祥老师的图解数据结构与算法课程中的 操作最后一个元素复杂度震荡问题的解决小节, 巩固相关知识点