本文地址:http://www.cnblogs.com/archimedes/p/programming-abstractions-in-c-2.html,转载请注明源地址。

2、按照规定求圆柱的表面积和体积

  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdbool.h>
  4. #define PI 3.1415926
  5. void input(double *r, double *h)
  6. {
  7. double a, b;
  8. printf("请输入半径和高度:");
  9. scanf("%lf %lf", &a, &b);
  10. *r = a;
  11. *h = b;
  12. }
  13. void count(double r, double h, double *s, double *v)
  14. {
  15. *s = ( * PI * r) * h;
  16. *v = PI * r * r * h;
  17. }
  18. void output(double s, double v)
  19. {
  20. printf("圆柱的表面积:%lf\n", s);
  21. printf("圆柱的体积:%lf\n", v);
  22. }
  23. int main()
  24. {
  25. double r, h, s, v;
  26. input(&r, &h);
  27. count(r, h, &s, &v);
  28. output(s, v);
  29. return ;
  30. }

3、按照规则计算平均值

  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdbool.h>
  4. #define MaxJudges 100
  5. double Mean(double array[], int n)
  6. {
  7. int i;
  8. double total, max, min;
  9. max = min = array[];
  10. total = 0.0;
  11. for(i = ; i < n; i++) {
  12. total += array[i];
  13. if(max < array[i])
  14. max = array[i];
  15. if(min > array[i])
  16. min = array[i];
  17. }
  18. return ((total - min - max) / n);
  19. }
  20. void ReadScore(double scores[], int n)
  21. {
  22. int i;
  23. for(i = ; i < n; i++)
  24. scanf("%lf", &scores[i]);
  25. }
  26. int main()
  27. {
  28. int n;
  29. double array[MaxJudges];
  30. scanf("%d", &n);
  31. ReadScore(array, n);
  32. printf("平均值为:%lf\n", Mean(array, n));
  33. return ;
  34. }

4、判断一个数列是否升序

  1. #include<stdio.h>
  2. #include<math.h>
  3. #include<stdbool.h>
  4. bool IsSorted(int *a, int n)
  5. {
  6. int i;
  7. for(i = ; i <= n - ; i++) {
  8. if(a[i] < a[i-])
  9. return false;
  10. }
  11. return true;
  12. }
  13. int main()
  14. {
  15. int n, array[];
  16. scanf("%d", &n);
  17. for(int i = ; i < n; i++)
  18. scanf("%d", &array[i]);
  19. if(IsSorted(array, n))
  20. printf("TRUE\n");
  21. else
  22. printf("FALSE\n");
  23. return ;
  24. }

5、埃拉托斯特尼筛生成2~1000之间的素数

  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<math.h>
  4. #define N 1000000
  5. bool isprime[N];
  6. void initPrime()
  7. {
  8. int n, i, j;
  9. int k;
  10. for(k = ; k < N; k++)
  11. isprime[k] = true;
  12. n = (int)sqrt(N);
  13. for(i = ; i <= n; i++) {
  14. if(isprime[i]) {
  15. j = i * i;
  16. while(j <= n) {
  17. isprime[j] = false;
  18. j += i;
  19. }
  20. }
  21. }
  22. }
  23. int main()
  24. {
  25. int i = ;
  26. initPrime();
  27. while() {
  28. if(i > ) break;
  29. if(isprime[i])
  30. printf("%d\n", i);
  31. i++;
  32. }
  33. return ;
  34. }

6、按照格式输出一组数据的柱状图

  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<math.h>
  4. void printStar(int n)
  5. {
  6. for(int i = ; i <= n; i++)
  7. putchar('*');
  8. printf("\n");
  9. }
  10. int main()
  11. {
  12. int a[], b[];
  13. int n, t, i;
  14. scanf("%d", &n);
  15. for(i = ; i < ; i++)
  16. a[i] = ;
  17. for(i =; i < n; i++) {
  18. scanf("%d", &b[i]);
  19. t = b[i] / ;
  20. switch(t) {
  21. case : a[]++; break;
  22. case : a[]++; break;
  23. case : a[]++; break;
  24. case : a[]++; break;
  25. case : a[]++; break;
  26. case : a[]++; break;
  27. case : a[]++; break;
  28. case : a[]++; break;
  29. case : a[]++; break;
  30. case : a[]++; break;
  31. case : a[]++; break;
  32. default: break;
  33. }
  34. }
  35. for(i = ; i < ; i++) {
  36. printf("%3d: ", i * );
  37. printStar(a[i]);
  38. }
  39. return ;
  40. }

8、扫描数组,出去数组中含0的元素,返回0的数目

  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<math.h>
  4. void swap(int *a, int *b)
  5. {
  6. int t;
  7. t = *a;
  8. *a = *b;
  9. *b = t;
  10. }
  11. int RemoveZeroElements(int a[], int n)
  12. {
  13. int num, i, j;
  14. num = ;
  15. if(a[]) num++;
  16. for(i = ; i < n; i++) {
  17. if(!a[i] && i < n - ) {
  18. for(j = i + ; j < n; j++) {
  19. if(a[j]) {
  20. num++;
  21. swap(&a[i], &a[j]);
  22. break;
  23. }
  24. }
  25. }
  26. }
  27. return n - num;
  28. }
  29. void printArray(int *a, int n)
  30. {
  31. int i;
  32. for(i = ; i < n; i++)
  33. printf("%d ", a[i]);
  34. printf("\n");
  35. }
  36. int main()
  37. {
  38. int a[] = {,,,,,,,,,,,,};
  39. int n, zeronum;
  40. n = sizeof(a) / sizeof(a[]);
  41. printArray(a, n);
  42. zeronum = RemoveZeroElements(a, n);
  43. printArray(a, n - zeronum);
  44. printf("zreo numbers: %d\n", zeronum);
  45. return ;
  46. }

10、找出一组输入数字中的最小值与最大值

  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<math.h>
  4. void solve()
  5. {
  6. double n, min, max;
  7. printf("Enter the elements of the array, one per line.\n");
  8. printf("use -1 to sigal the end of the list.\n");
  9. printf("? ");
  10. scanf("%lf", &n);
  11. max = min = n;
  12. printf("? ");
  13. while(~scanf("%lf", &n) && (n != -)) {
  14. if(n < min)
  15. min = n;
  16. if(max < n)
  17. max = n;
  18. printf("? ");
  19. }
  20. printf("The range of value is %lf-%lf\n", min, max);
  21.  
  22. }
  23. int main()
  24. {
  25. solve();
  26. return ;
  27. }

11、按要求动态分配一个整型数组并赋值

  1. #include<stdio.h>
  2. #include<stdbool.h>
  3. #include<math.h>
  4. #include<stdlib.h>
  5. int *indexArray(int n)
  6. {
  7. int *p = (int *)malloc(n * sizeof(int));
  8. for(int i = ; i < n; i++)
  9. p[i] = i;
  10. return p;
  11. }
  12. int main()
  13. {
  14. int *ip, n;
  15. scanf("%d", &n);
  16. ip = indexArray(n);
  17. for(int i = ; i < n; i++)
  18. printf("%d ", ip[i]);
  19. printf("\n");
  20. free(ip);
  21. return ;
  22. }

《C程序设计的抽象思维》2.10编程练习(未完)的更多相关文章

  1. Python之路第一课Day7--随堂笔记(面向对象编程进阶...未完待续 )

    本节内容: 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 异常处理 Socket开发基础 作业:开发一个支持多用户在线的FTP程序 面向对象高级语法部分 一.静态方法 通过@s ...

  2. 使用 Python 进行并发编程 -- asyncio (未完)

    参考地址 参考地址 参考地址 Python 2 时代, 高性能的网络编程主要是使用 Twisted, Tornado, Gevent 这三个库. 但是他们的异步代码相互之间不兼容越不能移植. asyn ...

  3. Siki_Unity_3-8_Lua编程(未完)

    Unity 3-8 Lua编程 任务1&2&3:前言 课程内容: Lua从入门到掌握 为之后的xLua和其他热更新方案打下基础 任务4:Lua简介 Lua是轻量小巧的脚本语言--无需编 ...

  4. 10.31-11.1Test(未完)

    10.31-11.1Test 题目 描述 做法 \(BSOJ5177\) 求在\(n\)个数里选\(K\)个的所有方案的异或和之和 按位讨论,组合数算 \(BSOJ5178\) 化简\(\displa ...

  5. C#中正则表达式编程(未完,待补充)

    对于只存储一个匹配,可用Match类: 一般模式: Regex reg = new Regex(string pattern); string str = "###############& ...

  6. 20172319 《Java程序设计教程》 第10周学习总结

    20172319 2018.05.09-05.21 <Java程序设计教程>第10周学习总结 目录 教材学习内容总结 教材学习中的问题和解决过程 代码调试中的问题和解决过程 代码托管 上周 ...

  7. 已看1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架、多线程(并发编程)、I/O(NIO)、Socket、JDBC、XML、反射等。[泛型]\

    1.熟练的使用Java语言进行面向对象程序设计,有良好的编程习惯,熟悉常用的Java API,包括集合框架.多线程(并发编程).I/O(NIO).Socket.JDBC.XML.反射等.[泛型]\1* ...

  8. 20155324 《Java程序设计》实验五 网络编程与安全

    20155324 <Java程序设计>实验五 网络编程与安全 实验内容 任务一 编写MyBC.java实现中缀表达式转后缀表达式的功能 编写MyDC.java实现从上面功能中获取的表达式中 ...

  9. Fedora 10编程开发工具

    1请问Fedora 10编程开发工具有什么 编辑器就用vim,编译用gcc,当然个人爱好随意 IDE的话推荐eclipse,如果做C/C++的,用codeblocks也是个不错的选择 输入gcc -v ...

  10. 20155326 《Java程序设计》实验五网络编程与安全实验报告

    20155326 <Java程序设计>实验五网络编程与安全实验报告 实验内容 任务一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...

随机推荐

  1. Making Your ActionBar Not Boring

    这篇文章转自国外一个技术大牛的博客,首先感谢这位大牛的无私奉献. Android应用中有一名位 Google书报摊的应用,他实现了一种新的ActionBar风格.当用户初始进入该界面的时候,为一个透明 ...

  2. 自定义ISPF面板

    1)登录的时候可以看到登录执行的PROCEDURE,此处为DBSPROC 2.登录后,进入SDSF,再进入LOG,输入命令TOP,再输入命令F JOB,按F11把屏幕向右翻页,看到哪下界面 找到//I ...

  3. 理解js中的自由变量以及作用域的进阶

    如果你不知道什么是作用域,建议你先看什么是作用域链,什么是原型链.这篇文章,因为这些内容都是有关联性的. 什么是自由变量? 如我在全局中定义了一个变量a,然后我在函数中使用了这个a,这个a就可以称之为 ...

  4. eclipse开发web应用程序步骤(图解)

    *运行环境(也就是服务器的选择) 环境搭建好之后开始编写web程序!然后右键->Run as -> Run on Server!

  5. [Node.js] Node + Redis 实现分布式Session方案

    原文地址: http://www.moye.me/?p=565 Session是什么? Session 是面向连接的状态信息,是对 Http 无状态协议的补充. Session 怎么工作? Sessi ...

  6. Android学习笔记之dispatchTouchEvent和OnInterceptTouchEvent和OnTouchEvent三个方法之间的联系...

    PS:好久没有写博客了,项目正式开始启动了,但是怎么也打不起精神来...可能还是不适应放假留校...这下一年只能回家一次了...伤感...写篇博客舒坦下... 学习内容:   Android中disp ...

  7. IOS开发UI基础UITableView的属性

    UITableView UITableView内置了两种样式:UITableViewStylePlain,UITableViewStyleGrouped <UITableViewDataSour ...

  8. DOM中 property 和 attribute 详解

    被问到 property 和 attribute 的区别,想来也是要好好看一下. 一.基本概念区别 其实Attribute和Property这两个单词,翻译出来都是“属性”,<js高级程序设计& ...

  9. 有关C#标签Attribute的熟悉

    Attribute 简单用法: 最近用到了,所以静下心来找些资料看了一下,终于把这东西搞清楚了. 一.什么是Attribute 先看下面的三段代码: 1.自定义Attribute类:VersionAt ...

  10. Dev 饼图

    // 添加引用命名空间 using DevExpress.XtraCharts; /* *具体步骤:(1)先构建饼图对象的数据源DataTable * (2)再设置饼图对象的相关参数 * (3)饼图空 ...