经过半个月的C语言熏陶,最终迎来了一次考试的检查.考后整理了下编程题,经本人优化后,自认为比较完美了(貌似有点自嗨了O(∩_∩)O~).
如果有更好的优化建议,请尽管讲撒...
- //
- // main.c
- // 第一题
- //
- // Created by YYSky on 16/5/13.
- // Copyright © 2016年 yaomars. All rights reserved.
- //
- /**
- * 1、设计一个函数,统计从键盘输入的50个实数中有多少个正数、多少个负数、多少个零
- *
- *
- */
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
-
- //存储正数的个数
- int zNum = 0;
- //存储负数的个数
- int fNum = 0;
- //存储零的个数
- int zero = 0;
-
- //循环输入50个实数
- for (int i = 0; i < 50; i++) {
- printf("请输入第%d个实数:",i + 1);
- int temp = 0;
-
- rewind(stdin);
- scanf("%d",&temp);
-
- if (temp > 0) {
- zNum ++;
- } else if(temp < 0){
- fNum ++;
- }else{
- zero ++;
- }
-
- }
-
- //打印结果
- printf("正数个数为:%d, 负数个数为:%d, 零的个数为:%d\n",zNum,fNum,zero);
-
- return 0;
- }
复制代码- //
- // main.c
- // 第二题
- //
- // Created by YYSky on 16/5/13.
- // Copyright © 2016年 yaomars. All rights reserved.
- //
- /**
- * 2,完数,一般指完全数,一个自然数如果它的所有真因子(即除了自身以外的约数)的和等于该数,那么这个数就是完全数,如:6的真因子有1 、2、3,6=1+2+3,所以6是一个完全数。
- 编程输出1000以内的所有完数
- *
- *
- */
- #include <stdio.h>
- int main(int argc, const char * argv[]) {
-
- //循环取数
- for (int i = 2; i <= 1000; i++) {
- //存储每个数的因子之和
- int sum = 0;
- //遍历每个数,取出因子之和(循环次数一定要注意优化)
- for (int j = 1; j <= (i / 2); j++) {
- if (i % j == 0) {
- sum += j;
- }
- }
- if (sum == i) {
- printf("完全数:%d\t",i);
- }
- }
- printf("\n");
-
- return 0;
- }
复制代码- //
- // main.c
- // 第三题
- //
- // Created by YYSky on 16/5/13.
- // Copyright © 2016年 yaomars. All rights reserved.
- //
- /**
- * 3、定义一个函数int fun(int a,int b,int c),它的功能是:若a,b,c能构成等边三角形函数返回3,若能构成等腰三角形函数返回2,若能构成一般三角形函数返回1,若不能构成三角形函数返回0。
- *
- *
- */
- #include <stdio.h>
- //函数的声明
- int fun(int a,int b,int c);
- int main(int argc, const char * argv[]) {
-
- //调用函数
- int result = fun(4, 4, 4);
- //判断函数返回结果,打印判断结果
- switch (result) {
- case 0:
- printf("此三个数不能构成三角形..\n");
- break;
-
- case 1:
- printf("此三个数能构成一般三角形..\n");
- break;
- case 2:
- printf("此三个数能构成等腰三角形..\n");
- break;
- case 3:
- printf("此三个数能构成等边三角形..\n");
- break;
-
- default:
- break;
- }
-
- return 0;
- }
- //实现函数
- int fun(int a,int b,int c){
- //判断是三角形的条件
- if ((a + b) > c && (c + b) > a && (a + c) > b) {
- //等边三角形的条件
- if ((a == b) && (b == c)) {
-
- return 3;
- //等腰三角形的条件
- } else if(a == b || a == c || c == b){
-
- return 2;
- //一般三角形
- }else{
- return 1;
- }
-
- } else {
-
- return 0;
- }
- }
复制代码
|
|