c语言练习题Training1整数算法训练
2012-07-21 18:32
447 查看
1. 题目:通过编程实现,统计1~n有多少个9
提示:n通过参数传入
#include <stdio.h> void num(int n) { int count=0; int b; int i=0; int temp; for(i=0;i<=n;i++) { temp = i; while(temp) { b = temp % 10; temp = temp / 10; if(b == 9) { count++; } } } printf("含有9的个数为%d\n",count); } int main() { int a; printf("请输入一个数:"); scanf("%d",&a); num(a); return 0; }
2. 题目:有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.
提示:用数组完成
#include <stdio.h> int shu(int n) { int a[20]; int i=0; int count=0; int num=0; int mark; for(i=0;i<n;i++) { a[i] = i+1; } while(count != n-1) { for(i=0;i<n;i++) { if(a[i]==0) { continue; } num++; if(num == 3) { num = 0; a[i] = 0; count++; } } } for(i=0;i<n;i++) { if(a[i]==0) { continue; } mark = a[i]; break; } printf("留下的是原来的%d号(号码是从1开始)\n",mark); } int main() { int n; printf("请输入人数(20人以内):"); scanf("%d",&n); shu(n); return 0; }
3. 题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
提示:需要排数的数字通过参数传递进来,
例如:输入:./a.out -1 2.1 -3 5 7 输出: -3 -1 2.1 5 7#include <stdio.h> int paixu(double *b,int n) { int i = 0,j = 0; for(i=0;i<n;i++) { for(j=i+1;j<n;j++) { if(*(b+i)>*(b+j)) { int temp; temp = *(b+i); *(b+i) = *(b+j); *(b+j) = temp; } } } } int main() { double a[20]; int i=0; int j=0; char ch=0; printf("请输入要排序的数(20个以内):"); while(ch!='\n') { scanf("%lf",a+i); i++; ch = getchar(); } paixu(a,i); for(j=0;j<i;j++) { printf("%lf\t",a[j]); } printf("\n"); return 0; }
4. 题目:求100以内的素数,全部打印出来
#include <stdio.h> #include <math.h> void sushu(int n) { int i=0,j=0; int temp=1; printf("1~%d中有素数:",n); for(i=3;i<=n;i++) { for(j=2;j<=sqrt(i);j++) { temp = i % j; if(temp == 0) { break; } } if(temp!=0) { printf("%d\t",i); } } printf("\n"); } int main() { int n; printf("请输入一个整数:"); scanf("%d",&n); sushu(n); return 0; }
5. 题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
#include <stdio.h> #include <string.h> int wan(int num) { int i=0,j=0; int a[100]={0}; int n=0; int sum=0; printf("1~%d中完数有:",n); for(i=0;i<=num;i++) { for(j=1;j<i;j++) { if((i%j)==0) { a = j; n++; } } for(j=0;j<n;j++) { sum+=a[j]; } if(i==sum) { printf("%d\t",i); } n = 0; sum = 0; memset(a,0,sizeof(a)); } printf("\n"); } int main() { int n; printf("请输入一个数:"); scanf("%d",&n); wan(n); return 0; }
相关文章推荐
- c语言练习题——整数算法训练
- 初入C语言!整数算法训练2:输入5个数(含负数、小数),将它们按由小到大的顺序排列起来。
- 【C语言】C的一些简单练习题,关于水仙花数,求和,整数高低位输出,制定二进制位替换
- 蓝桥杯 ALGO-90 算法训练 出现次数最多的整数
- c语言练习题——递归和栈编程训练
- 算法训练 出现次数最多的整数
- 算法训练 出现次数最多的整数
- 蓝桥杯 算法训练 出现次数最多的整数
- 蓝桥杯 - 算法训练 - 铁轨 栈 C语言实现
- c语言练习题——字符串训练
- 蓝桥杯 ALGO-90 算法训练 出现次数最多的整数
- 蓝桥杯 算法训练 出现次数最多的整数
- 整数算法的训练
- C语言编程技巧:整数开方算法
- C语言之基本算法29—整数任意次方的最后三位数(精度问题)
- 蓝桥杯 - 算法训练 学做菜 C语言实现
- 蓝桥杯 - 算法训练 反置数 C语言实现
- 蓝桥杯 - 算法训练 - 卡片游戏 链表 C语言实现
- 蓝桥杯 - 算法训练 反置数 C语言实现
- 整数算法训练01—统计1~n有多少个9