1、题目:通过编程实现,统计1~n有多少个9
提示:n通过参数传入
1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int count_9(int iNum) 5 { 6 int i=0, tmp=0, count=0; 7 for(i=1; i<=iNum; i++) 8 { 9 tmp = i; 10 while(tmp) 11 { 12 if(9 == tmp%10) 13 { 14 count++; 15 } 16 tmp = tmp/10; 17 } 18 } 19 return count; 20 } 21 22 int main(int argc, char *argv[]) 23 { 24 if(2 != argc) 25 { 26 printf("arg error\n"); 27 } 28 else 29 { 30 int iNum = atoi(argv[1]); 31 int count = count_9(iNum); 32 printf("%d以内含有%d个9\n",iNum,count); 33 } 34 return 0; 35 }
2、题目:有n个人围成一圈,顺序牌号,从第一个开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
提示:用数组完成
#include <stdio.h> int main() { int a[100],num,i,quit_num,k; printf("请输入玩游戏的总人数:\n"); scanf("%d",&num); for(i=0;i<num;i++) { a[i] = i+1; } quit_num = 0; i = 0;k = 0; while(quit_num < num-1) { if(a[i] != 0) { k++; if(k == 3) { a[i] = 0; k = 0; quit_num ++; } } if(i == num-1) { i = 0; } else { i++; } } for(i = 0;i < num;i++) { if(a[i]!=0) { printf("最后剩下的是原来的%d号\n",a[i]); } } return 0; }
3、题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来
提示:需要排序的数字通过参数传递进来,
例如:输入:./a.out -1 2.1 -3 5 7
输出: -3 -1 2.1 5 7
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[6]) { float temp; float a[5]; int i = 0,j = 0; if(argc < 3) { printf("arg error\n"); } else { for(i = 0,j = 1; i < 5; i++,j++) { a[i] = atof(argv[j]); } for(i = 0;i < 5; i++) { for(j = i+1; j < 5; j++) { if(a[j] < a[i]) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } } printf("the result is:\n"); for(i = 0;i < 5;i++) { printf("%.2f ",a[i]); } printf("\n"); } return 0; }
4、题目:求100以内的素数,全部打印出来
1 #include <stdio.h> 2 3 int main() 4 { 5 int i,j ; 6 7 for(i = 1;i <= 100;i++) 8 { 9 for(j = 2; j <= i; j++) 10 { 11 if(i%j == 0 && i != j ) 12 { 13 break; 14 } 15 if(i == j) 16 { 17 printf("%d ",i); 18 break; 19 } 20 } 21 } 22 printf("\n"); 23 24 return 0; 25 }
5、题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数
1 #include <stdio.h> 2 3 int main() 4 { 5 int i = 0, j = 0, sum = 0; 6 for( i = 2; i <= 1000; i++) 7 { 8 sum = 0; 9 for( j = 1; j< i ; j++ ) 10 { 11 if(i%j == 0) 12 { 13 sum = sum + j; 14 } 15 } 16 if(sum == i) 17 { 18 printf("%d 的因子有: ",i); 19 for(j =1;j < i; j++) 20 { 21 if(i%j == 0) 22 { 23 printf("%d ",j); 24 } 25 } 26 printf("\n"); 27 } 28 } 29 30 return 0; 31 }