4.1正数的n的平方根可以通过:

ai+1= (a+ n / a) / 2

  得到,第一个a1是1,结果会越来越精确。

#include <stdio.h>

int main()
{
double input;
double exp;
scanf_s("%lf", &input); double aBefore = 1;
double aNow = (aBefore + input / aBefore) / 2; exp = aBefore - aNow;
exp = exp < 0 ? -exp : exp;
printf("aBefore: %lf, aNow: %lf, exp: %f\n\n", aBefore, aNow, exp);
while (exp > 0.000001) {
aBefore = aNow;
aNow = (aBefore + input / aBefore) / 2;
exp = aBefore - aNow;
exp = exp < 0 ? -exp : exp;
printf("aBefore: %lf, aNow: %lf, exp: %lf\n", aBefore, aNow, exp);
} return 0;
}

  

4.2 打印100以内的质数

  因为2* 50 和 50 *2一样,如果按照1 2 3 4 一直遍历到目标的数其实有很多重复,事实上只需要计算到这个数的平方根即可停止。

  

#include <stdio.h>
#include <math.h> #define TRUE 1
#define FALSE 0 int isPrimer(int num)
{
int idx;
int end = floor(sqrt(num)) + 1;
for (idx = 2; idx <= end ; idx++)
{
if (num % idx == 0) {
return FALSE;
}
}
return TRUE;
}
int main()
{
int num;
for (num = 1; num <= 100; num++)
{
if (isPrimer(num)) {
printf("%d ", num);
}
} return 0;
}

  

4.7去除字符串中多余的空格

#include <stdio.h>

void trim(char str[])
{
//判断之前是否在空格中
int inEmpty = 0;
//字符串下标
int idx = 0; //循环字符串
while (str[idx] != '\0') {
//遇到空格
if (str[idx] == ' ' || str[idx] == '\t' || str[idx] == '\n') {
//如果之前不是空格,设置空格状态为1
if (!inEmpty) {
inEmpty = 1;
idx++;
}else{
//如果之前是空格将之后的字符全部前移一位
int len = strlen(str);
for (int movStart = idx; movStart <= len; movStart++) {
str[movStart] = str[movStart + 1];
}
}
}else {
//没遇到空格需要恢复非空格状态
inEmpty = 0;
idx++;
}
}
} int main()
{
char name[] = " this is my name";
printf("%s\n", name);
trim(name);
printf("%s\n", name); return 0;
}

  

C和指针 第四章 习题的更多相关文章

  1. 统计学习导论:基于R应用——第四章习题

    第四章习题,部分题目未给出答案 1. 这个题比较简单,有高中生推导水平的应该不难. 2~3证明题,略 4. (a) 这个问题问我略困惑,答案怎么直接写出来了,难道不是10%么 (b) 这个答案是(0. ...

  2. PythonCrashCourse 第四章习题

    Python 从入门到实践第四章习题 4.1想出至少三种你喜欢的比萨,将其名称存储在一个列表中,再使用for 循环将每种比萨的名称都打印出来 修改这个for 循环,使其打印包含比萨名称的句子,而不仅仅 ...

  3. C和指针 第十四章 习题

    14.1 打印函数 #include <stdio.h> void print_ledger_long(){ printf("function print_ledger_long ...

  4. C和指针 第六章 习题

    6.1编写一个函数,它在一个字符串中进行搜索,查找所有在一个给定字符集中出现的字符,返回第一个找到的字符位置指针,未找到返回NULL #include <stdio.h> char * f ...

  5. C和指针 第十七章 习题

    17.8 为数组形式的树编写模块,用于从树中删除一个值,如果没有找到,程序节点 ArrayBinaryTree.c // // Created by mao on 16-9-18. // #inclu ...

  6. C和指针 第十三章 习题

    1,1标准输入读入字符,统计各类字符所占百分比 #include <stdio.h> #include <ctype.h> //不可打印字符 int isunprint(int ...

  7. C和指针 第十一章 习题

    1编写calloc,内部使用malloc函数获取内存 #include <stdio.h> #include <stdlib.h> void *myAlloc(unsigned ...

  8. C和指针 第七章 习题

    7.1 hermite递归函数 int hermite(int n, int x) { if (n <= 0) { return 1; } if (n == 1) { return 2 * x; ...

  9. 《学习OpenCV》 第四章 习题六

    实现的是一个图像标签编辑器,其间遇到了些问题还未解决或者可能解决方法上不是最优,若你有更好的思路可以提供给我,大恩不言谢啦!!☆⌒(*^-゜)v. #include "stdafx.h&qu ...

随机推荐

  1. LCA 倍增||树链剖分

    方法1:倍增 1498ms #include <iostream> #include <cstdio> #include <algorithm> #include ...

  2. sqlServer下展示某库中所有的表

  3. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - .NET商业化成品成熟各种数据权限的需求对应例子代码

    还是我上次提出的那个问题问题:假设一个订单表,1.角色A可以看自己的2.角色B可以看工作组的3.角色C可以看金额是1000元以下的(自定义条件是否可行?如果可以,请详细说明)4.角色D可以看整个部门的 ...

  4. 几种display:table-cell的应用

    一.display:table-cell属性简述 display:table- cell属性指让标签元素以表格单元格的形式呈现,类似于td标签.目前IE8+以及其他现代浏览器都是支持此属性的,但是IE ...

  5. sql server cross/outer apply 用法

    这是 sql server 帮助文档关于apply的描述: 使用 APPLY 运算符(2005或以上版本)可以为实现查询操作的外部表表达式返回的每个行调用表值函数.表值函数作为右输入,外部表表达式作为 ...

  6. SQLite剖析之编程接口详解

    前言 使用过程根据函数大致分为如下几个过程: sqlite3_open() sqlite3_prepare() sqlite3_step() sqlite3_column() sqlite3_fina ...

  7. linux dd 命令详解

    dd 是 Linux/UNIX 下的一个非常有用的命令,作用是用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换. 名称: dd 使用权限: 所有使用者dd 这个指令在 manual 里的定义是 ...

  8. 五种开源协议(GPL,LGPL,BSD,MIT,Apache)

    什么是许可协议? 什么是许可,当你为你的产品签发许可,你是在出让自己的权利,不过,你仍然拥有版权和专利(如果申请了的话),许可的目的是,向使用你产品的人提供 一定的权限. 不管产品是免费向公众分发,还 ...

  9. 【Matplotlib】详解图像各个部分

    首先一幅Matplotlib的图像组成部分介绍. 在matplotlib中,整个图像为一个Figure对象.在Figure对象中可以包含一个或者多个Axes对象.每个Axes(ax)对象都是一个拥有自 ...

  10. Java的多线程机制系列:(二)缓存一致性和CAS

    一.总线锁定和缓存一致性 这是两个操作系统层面的概念.随着多核时代的到来,并发操作已经成了很正常的现象,操作系统必须要有一些机制和原语,以保证某些基本操作的原子性.首先处理器需要保证读一个字节或写一个 ...