本文地址: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. php中关于js保存文件至本地的问题

    最近在搞一个livezilla的在线客服聊天的东东,客户界面要求添加一个下载聊天记录的功能.于是我就是翻看了下网上的各种关于”js保存文件至本地“的资料,发现只能在IE下通过execCommand实现 ...

  2. ASP.NET连接Oracle数据库的步骤详解(转)

    ASP.NET连接Oracle数据库的步骤详解   本文我们主要介绍了ASP.NET连接Oracle数据库的步骤及每个步骤需要进行的设置,希望能够对您有所帮助.   在用ASP.NET开发应用程序时, ...

  3. Asp.net Mvc4 使用Cas单点登录

    因项目需要,使用了耶鲁大学的Cas单点登录方案,在java中使用一直正常,但是在.Net中碰到了循环重定向的问题,反复测试后,总算解决了,最终的配置如下: <?xml version=" ...

  4. 将XmlDocument转换成XDocument

    XmlDocument xml=new XmlDocument(); xml.LoadXml(strXmlText); XmlReader xr=new XmlNodeReader(xml); XDo ...

  5. Lo-Dash – 替代 Underscore 的优秀 JS 工具库

    前端开发人员大都喜欢 Underscore,它的工具函数很实用,用法简单.这里给大家推荐另外一个功能更全面的 JavaScript 工具——Lo-Dash,帮助你更好的开发网站和 Web 应用程序. ...

  6. LVM快照(snapshot)备份

    转载自:http://wenku.baidu.com/link?url=cbioiMKsfrxlzrJmoUMaztbrTelkE0FQ8F9qUHX7sa9va-BkkL4amvzCCAKg2hBv ...

  7. myeclipse怎么github

    myeclipse怎么github 第一步.打开myeclipse->选择项目->鼠标右键->Team->Share project,将出现如下图所示: 第二步.选择git,在 ...

  8. HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结

    HTTP请求报文: 一个HTTP请求报文由四个部分组成:请求行.请求头部.空行.请求数据 1.请求行   请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.比如 GE ...

  9. Winform开发的界面处理优化

    在Winform开发中,客户体验是个很好的参考性指标,如果一个功能使用的时候感觉很流畅,说明我们的程序执行效率还不错,但是随着数据的真多,原先可能流程的地方可能会变得比较卡,这时候就需要追本索源,找到 ...

  10. WCF开发框架之插件化应用模式升级

    自从在<Winform开发框架之插件化应用框架实现>一文中,介绍并总结了Winform开发框架插件化应用框架的实现后,赢得了很多同行和客户的支持,于是把我的WCF开发框架.混合式开发框架都 ...