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

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

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#define PI 3.1415926
void input(double *r, double *h)
{
double a, b;
printf("请输入半径和高度:");
scanf("%lf %lf", &a, &b);
*r = a;
*h = b;
}
void count(double r, double h, double *s, double *v)
{
*s = ( * PI * r) * h;
*v = PI * r * r * h;
}
void output(double s, double v)
{
printf("圆柱的表面积:%lf\n", s);
printf("圆柱的体积:%lf\n", v);
}
int main()
{
double r, h, s, v;
input(&r, &h);
count(r, h, &s, &v);
output(s, v);
return ;
}

3、按照规则计算平均值

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#define MaxJudges 100
double Mean(double array[], int n)
{
int i;
double total, max, min;
max = min = array[];
total = 0.0;
for(i = ; i < n; i++) {
total += array[i];
if(max < array[i])
max = array[i];
if(min > array[i])
min = array[i];
}
return ((total - min - max) / n);
}
void ReadScore(double scores[], int n)
{
int i;
for(i = ; i < n; i++)
scanf("%lf", &scores[i]);
}
int main()
{
int n;
double array[MaxJudges];
scanf("%d", &n);
ReadScore(array, n);
printf("平均值为:%lf\n", Mean(array, n));
return ;
}

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

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool IsSorted(int *a, int n)
{
int i;
for(i = ; i <= n - ; i++) {
if(a[i] < a[i-])
return false;
}
return true;
}
int main()
{
int n, array[];
scanf("%d", &n);
for(int i = ; i < n; i++)
scanf("%d", &array[i]);
if(IsSorted(array, n))
printf("TRUE\n");
else
printf("FALSE\n");
return ;
}

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

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
#define N 1000000
bool isprime[N];
void initPrime()
{
int n, i, j;
int k;
for(k = ; k < N; k++)
isprime[k] = true;
n = (int)sqrt(N);
for(i = ; i <= n; i++) {
if(isprime[i]) {
j = i * i;
while(j <= n) {
isprime[j] = false;
j += i;
}
}
}
}
int main()
{
int i = ;
initPrime();
while() {
if(i > ) break;
if(isprime[i])
printf("%d\n", i);
i++;
}
return ;
}

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

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
void printStar(int n)
{
for(int i = ; i <= n; i++)
putchar('*');
printf("\n");
}
int main()
{
int a[], b[];
int n, t, i;
scanf("%d", &n);
for(i = ; i < ; i++)
a[i] = ;
for(i =; i < n; i++) {
scanf("%d", &b[i]);
t = b[i] / ;
switch(t) {
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
case : a[]++; break;
default: break;
}
}
for(i = ; i < ; i++) {
printf("%3d: ", i * );
printStar(a[i]);
}
return ;
}

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

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
void swap(int *a, int *b)
{
int t;
t = *a;
*a = *b;
*b = t;
}
int RemoveZeroElements(int a[], int n)
{
int num, i, j;
num = ;
if(a[]) num++;
for(i = ; i < n; i++) {
if(!a[i] && i < n - ) {
for(j = i + ; j < n; j++) {
if(a[j]) {
num++;
swap(&a[i], &a[j]);
break;
}
}
}
}
return n - num;
}
void printArray(int *a, int n)
{
int i;
for(i = ; i < n; i++)
printf("%d ", a[i]);
printf("\n");
}
int main()
{
int a[] = {,,,,,,,,,,,,};
int n, zeronum;
n = sizeof(a) / sizeof(a[]);
printArray(a, n);
zeronum = RemoveZeroElements(a, n);
printArray(a, n - zeronum);
printf("zreo numbers: %d\n", zeronum);
return ;
}

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

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
void solve()
{
double n, min, max;
printf("Enter the elements of the array, one per line.\n");
printf("use -1 to sigal the end of the list.\n");
printf("? ");
scanf("%lf", &n);
max = min = n;
printf("? ");
while(~scanf("%lf", &n) && (n != -)) {
if(n < min)
min = n;
if(max < n)
max = n;
printf("? ");
}
printf("The range of value is %lf-%lf\n", min, max); }
int main()
{
solve();
return ;
}

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

#include<stdio.h>
#include<stdbool.h>
#include<math.h>
#include<stdlib.h>
int *indexArray(int n)
{
int *p = (int *)malloc(n * sizeof(int));
for(int i = ; i < n; i++)
p[i] = i;
return p;
}
int main()
{
int *ip, n;
scanf("%d", &n);
ip = indexArray(n);
for(int i = ; i < n; i++)
printf("%d ", ip[i]);
printf("\n");
free(ip);
return ;
}

《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. Android应用如何支持屏幕多尺寸多分辨率问题

    作为Android应用程序开发者都知道android是一个“碎片化”的世界.多种系统版本.多种尺寸.多种分辨率.多种机型,还有不同的厂商定制的不同ROM,你开发的应用会在不可预期的手机上报错.这给开发 ...

  2. Machine Learning : Pre-processing features

    from:http://analyticsbot.ml/2016/10/machine-learning-pre-processing-features/ Machine Learning : Pre ...

  3. html5 自定义数据属性 ,也就是 data-* 自定义属性---笔记。

    html5  自定义数据属性 ,也就是 data-* 自定义属性.  例如 <div data-last-value="43" data-hidden="true& ...

  4. Bucky – 免费开源的实时用户监控工具

    Bucky 是一个开源的实时用户监控工具,用于衡量用户在浏览器中使用 Web 应用程序时的性能.它可以自动测量你的网页需要多长时间来加载,Ajax 请求需要多长时间和各个函数需要实行多久. 您可能感兴 ...

  5. iOS-金额小写转大写

    一.目的 1. 金额小写转化成大写. 如 123456.65 --> 壹拾贰万叁仟肆佰伍拾陆元陆角伍分 2. 只能处理13位数的金额,并且只能处理到小数点后两位. 二.代码 #import &q ...

  6. Mysql 修改密码及重置密码方法

    修改密码: //选择数据库 use mysql; //修改密码 update user set password=password('新密码') where user='root'; //立即生效 f ...

  7. 通过Nginx实现负载均衡

    百度了下负载均衡:英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器.FTP服务器.企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务 嗯,跟我理 ...

  8. 连接不上mysqlworkbench问题解决方法

    连接mysqlworkbench出现如下提示:     查看ip     加入host的范围 mysql> select user,host from mysql.user;+--------- ...

  9. UnityShader快速上手指南(二)

    简介 前一篇介绍了如果编写最基本的shader,接下来本文将会简单的深入一下,我们先来看下效果吧 呃,gif效果不好,实际效果是很平滑的动态过渡 实现思路 1.首先我们要实现一个彩色方块 2.让色彩动 ...

  10. 【C#进阶系列】03 配置文件管理与程序集的引用版本重定向

    先来点与标题不相关的: CLR支持两种程序集:弱命名程序集和强命名程序集. 两者的区别在于强命名程序集使用发布者的公钥和私钥进行签名.由于程序集被唯一性地标识,所以当应用程序绑定到强命名程序集时,CL ...