苏嵌暑期实训----day6

今日任务 五道作业题:整数算法训练

作业1:通过编程实现,统计1~n有多少个9

提示:n通过参数传入

  1 #include
  2                                                                                              
  3 int main()
  4 {
  5     int num;
  6 
  7     printf("请输入一个数:\n");
  8     scanf("%d",&num);
  9 
 10     int i,j,temp,count = 0;
 11 
 12     for(i = 1; i <= num; i++)
 13     {
 14         temp = i;
 15         while(temp != 0)
 16         {
 17             j = temp % 10;
 18 
 19             if(j == 9)
 20             {
 21                 count++;
 22             }
 23 
 24             temp = temp / 10;
 25 
 26         }
 27     }
 28 
 29     printf("共有%d个九!\n",count);
 30 
 31     return 0;
 32 }

2、有n个人围成一圈,顺序排号,从第一个开始报数(从1到3报数),

凡报到3的人退出圈子,问最后最后留下的是原来第几号的那位.

提示:用数组完成

1 #include                                                                            
  2 #include
  3 
  4 #define SIZE 50
  5 
  6 
  7 int main()
  8 {
  9     int n,i,count,temp;
 10     int a[SIZE] = {0};
 11 
 12 //输入人数  
 13     printf("请输入人数(1-50人):\n");
 14     scanf("%d",&n);
 15 
 16     temp = n;
 17 
 18     if(temp > 50 || temp < 1)
 19     {
 20         printf("输入错误!输入范围为1-50!\n");
 21 //      scanf("%d",&n);
 22     }
 23 
 24 
 25 //给人从1到n编号
 26     for(i = 0; i < n; i++)
 27     {
 28 
 29         a[i] = i + 1;
 30     }
 31 
 32 //把报到3的人编号置0
 33     i = 0;
 34     while(n > 1)
 35     {
 36         if(a[i] != 0)
 37         {
 38             count++;
 39         }
 40 
 41         if(count == 3)
 42         {
 43             a[i] = 0;
 44             count = 0;
 45             n--;

 46         }

 47 
 48         i++;
 49 
 50         if(i == temp)
 51         {
 52             i = 0;
 53         }
 54 
 55     }
 56     
 57     if(temp >= 1 && temp <= 50)
 58     for(i = 0; i < temp; i++)
 59     {
 60         if(a[i] != 0)
 61         {
 62             printf("余下的人是%d号!\n",a[i]);
 63         }
 64     }
 65 
 66     return 0;
 67 }
 68                                                      

3、

题目:输入5个数(含负数、小数)将它们按由小到大的顺序排列起来

  1 #include                                                                            
  2 #include
  3 
  4 int main(int argc,char *argv[])
  5 {
  6     int i,j,k = 1;
  7     char *ch[100];
  8     char tmp;
  9     float ato[10] = {0};
 10 
 11 //输入的初始值  
 12     printf("初始值:\n");
 13     for(i = 1; i < argc; i++)
 14     {
 15         printf("%s ",argv[i]);
 16     //      printf("\n");
 17     }
 18     printf("\n");
 19 
 20 
 21 //把argv中的字符串转换成浮点型
 22     for(i = 1; i < argc; i++)
 23     {
 24         ato[i] = atof(argv[i]);
 25     //  printf("%f ",ato[i]);
 26     }
 27 
 28     //printf("\n");
 29 
 30 
 31 
 32 //排序
 33     for(i = 1; i <= 4; i++)
 34     {
 35         for(j = 1; j <= 5 - i; j++)
 36         {
 37             if(ato[j] > ato[j + 1])
 38             {
 39                 tmp = ato[j + 1];
 40                 ato[j + 1] = ato[j];
 41                 ato[j] = tmp;
 42                 ch[k] = argv[j + 1];
 43                 argv[j + 1] = argv[j];
 44                 argv[j] = ch[k];
 45                 k++;

 46             }

 47         }
 48     }
 49 
 50 
 51 //打印
 52     printf("排序后:\n");
 53     for(i = 1; i < argc; i++)
 54     {
 55         printf("%s ",argv[i]);
 56     }
 57 
 58     printf("\n");
 59 
 60 
 61     return 0;
 62 }       

4、

题目:求100以内的素数,全部打印出来

  1 #include                                                                            
  2 #include
  3 
  4 int main()
  5 {
  6     int i = 0;
  7     int j = 0;
  8 
  9 
 10     printf("2 ");
 11 
 12     for(i = 3; i <= 100; i += 2)
 13     {
 14         for(j = 2; j < sqrt(i); j++)
 15         {
 16             if(i % j == 0)
 17             {
 18                 break;
 19             }
 20         }
 21 
 22         if(j > sqrt(i))
 23             {
 24                 printf("%d ",i);
 25             }
 26     }
 27 
 28     printf("\n");
 29 
 30     return 0;
 31 }
5、题目: 一个数如果恰好等于它的因子之和,这个数被成为”完数”,例如:6=1+2+3.请编程找出1000以内的完数   1 #include                                                                            
  2 
  3 int main()
  4 {
  5     int i,j;
  6     int sum = 0;
  7 
  8     for(i = 1; i <= 1000; i++)
  9     {
 10         for(j = 1; j < i; j++)
 11         {
 12             if(i % j ==0)
 13             {
 14                 sum += j;
 15             }
 16 
 17         }
 18 
 19         if(sum == i)
 20         {
 21             printf("%d ",i);
 22         }
 23 
 24         sum = 0;
 25     }
 26 
 27     printf("\n");
 28 
 29     return 0;
 30 
 31 }

你可能感兴趣的:(苏嵌暑期实训----day6)