原题链接:[编程入门]报数问题
0.0分
89 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
0.0分
89 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
接着上面的 void Find_del(List q, int n){ List p; for(int i=1;i<n;i++){ p = q->next->next; //把next看成存储下一个节点的地址的仓库。现在假设链表是q,p节点的循环 ,等号右边 q-> next指的是仓库的内容,也就是下一个节点 p的存储空间首地址 q->next->next = p->next; //但是如果 q->next在等号左边, 它所指的就是 q的next仓库本身,而不再是它的内容 //看不懂上面两行的话就看看它们右边的注释 q = p->next; free(p); } printf("%d\n", q->number); free(q); } int main(){ int n; List q; scanf("%d", &n); if(n==1){ printf("%d\n", n); return 0; } q = Creat(n); Find_del(q,n); return 0; }#include<stdio.h> #include<stdlib.h> typedef struct node{ int number; struct node *next; }Node, *List; List Creat(int n){ List q,p; Node *head = (Node *)malloc(sizeof(Node)); head->next = NULL; q=head; for(int i=1;i<=n;i++){ p = (Node *)malloc(sizeof(Node)); p->number = i; p->next = NULL; q->next = p; q = p; } q->next = head->next; return head->next; } //Creat()创建表 ,并返回第一个节点(不是表头) 的地址#include<stdio.h> int baoshuFinish(int* a,int n) { int flag=0; for(int i=0;i<n;i++){ if(a[i]==1){flag++;} } return flag; } int baoshu(int n) { int a[n]; for(int i=0;i<n;i++){ a[i]=1; } int i=-1; while(baoshuFinish(a,n)!=1){ for(int j=0;j<3;j++){ do { i++;i%=n; }while(a[i]==0); while(a[i]==0){ i++;i=i%n; } } a[i]=0; } int save; for(int i=0;i<n;i++){ if(a[i]==1){save=i+1;} } return save; } int main() { int n; scanf("%d",&n); printf("%d",baoshu(n)); }#include <stdio.h> int main() { int i, n, temp, t; scanf("%d", &n); int a[n ]; for (i = 1; i <= n; i++) { if (i % 3 == 0) { temp = i; } } if (temp = n) { temp -= 1; }else if (n%temp==1) { temp = n; } printf("%d", temp); return 0; } 为啥这个只有50分彦祖们帮忙看下#include <stdio.h> int main() { int a,b,c=0; int sz[50]; scanf("%d",&a); for(b=0; b<a; b++){ sz[b]=b+1; } int d=a; while(d>1){ for(b=0; b<a; b++){ if(sz[b]!=0){ c++; if(c==3){ sz[b]=0; c=0; d--; } } } } for(b=0; b<a; b++){ if(sz[b]!=0) printf("%d",sz[b]); } return 0; }#include<stdio.h> int main() { int a,e=0,f; scanf("%d", &a); int c = 1, b[100], i,d; for (i = 0; i < a; i++) { b[i] = i+1; } i = 0; while (e!=1) { e = 0; d = i % a; if (c != 3 && b[d] != -1) c++; else if (c == 3&&b[d]!=-1) { b[d] = -1, c = 1; } for (f = 0; f < a; f++) { if (b[f] != -1) e++; } i++; } for (i = 0; i < a; i++) { if (b[i] != -1) { printf("%d", b[i]); break; } } return 0; }@dotcpp0626434 他是先输入了n的值(scanf("%d",&n)),,就在n这个地址里面有了数值,然后再int a[n].