码迷,mamicode.com
首页 > 其他好文 > 详细

经典的C程序

时间:2015-01-28 12:53:15      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

程序一:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数

 1 #include<stdio.h>
 2 void main(){
 3     int a, b, c, i;
 4     for (i = 100; i <= 999; i++){
 5         //获取百位数
 6         a = i / 100;
 7         //获取十位数
 8         b = i / 10 % 10;
 9         c = i % 10;
10         if ((a*a*a + b*b*b + c*c*c) == i){
11             printf("%d ",i);
12         }
13     }
14 }

程序二:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

 1 #include<stdio.h>
 2 void main()
 3 {
 4     int a, k = 0, i;
 5     char b[100];
 6     scanf_s("%d", &a);
 7     printf("%d=", a);
 8     for (i = 2; i <= a; i++)
 9     {
10         do
11         {
12             if (a%i == 0)
13             {
14                 b[k] = i; k++;
15                 a = a / i;
16             }
17             else
18                 break;
19         } while (a >= i);
20     }
21     for (i = 0; i<2 * k - 1; i++)
22         if (i % 2 == 0)
23             printf("%d", b[i / 2]);
24         else
25             printf("*");
26 }

程序三:输入两个正整数m和n,求其最大公约数和最小公倍数。

 1 #include<stdio.h>
 2 void main()
 3 {
 4     int a, b, x, y, r, t;
 5     scanf_s("%d,%d", &a, &b);
 6     printf("%d %d\n", a, b);
 7     x = a;
 8     y = b;
 9     //交换位置  最终结果 y>x
10     if (x>y)
11     {
12         t = y; y = x; x = t;
13     }
14     //碾转相除获取最大公约数
15     do
16     {
17         r = y%x;
18         y = x;
19         x = r;
20     } while (r != 0);
21     printf("%d  ", y);
22     //根据两个数的乘积除以其最大公约数就是最小公倍数
23     printf("%d", a*b / y);
24 }

 

经典的C程序

标签:

原文地址:http://www.cnblogs.com/webclz/p/4255291.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!