《C程序设计的抽象思维》1.9编程练习

简介:

1、温度转换:

#include<stdio.h>
int main()
{
    double C;
    while(~scanf("%lf", &C))
        printf("%lf\n", 9 * C * 1.0 / 5 + 32);
    return 0;
}   

2、长度转换:

#include<stdio.h>
int main()
{
    double YCI, YC, M;
    while(~scanf("%lf", &M)){
        printf("YCI:%lf\n", 1.0 / 0.0254);
        printf("YC:%lf\n", 1.0 / 12);
    }
    return 0;
}   

3、计算1+2+3+……+100

#include<stdio.h>
int main()
{
    int sum = 0;
    for(int i = 1; i <= 100; i++)
        sum += i;
    printf("%d\n", sum);
    return 0;
}   

4、计算序列值

#include<stdio.h>
int main()
{
    int N, i, sum;
    scanf("%d", &N);
    sum = 0;
    i = 1;
    while(i <= N)
        sum += 2 * (i++) - 1;
    printf("%d\n", sum);
    return 0;
}   

5、按照指定格式输入一个整数序列中的最大值

#include<stdio.h>
int main()
{
    int max, n, i;
    printf("This program finds the largest integer in a list.\n");
    printf("Enter 0 to sigal the end of the list.\n");
    printf("? ");
    max = -1;
    while(scanf("%d", &n) && n) {
        if(max < n) max = n;
        printf("? ");
    }
    printf("The largest value is %d\n", max);
    return 0;
}   

6、反转打印输入的整数

#include<stdio.h>
void print(int N)
{
    printf("The reverse number is ");
    while(N) {
        printf("%d", N % 10);
        N /= 10;
    }
    printf("\n");
}
int main()
{
    int N;
    printf("This program reverses the digits in an integer.\n");
    printf("Enter a positive integer: ");
    scanf("%d", &N);
    print(N);
    return 0;
}   

7、寻找完全数

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
bool IsPerfect(int n)
{
    int m, sum, t;
    sum = 1;
    m = (int)sqrt(n);
    for(int i = 2; i <= m; i++){ 
        if(n % i == 0) {
            if(i * i == n) {
                sum += m;
            } else {
                sum += (i + n / i);
            }
        }
    }
    if(sum == n)
        return true;
    else
        return false;
}
int main()
{
    for(int i = 2; i <= 9999; i++) {
        if(IsPerfect(i))
            printf("%d\n", i);
    }
    return 0;
}   

8、按照指定格式分解质因数

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#define N 100000
int isprime[N];
bool prime(int n)
{
    int i;
    for(i = 2; i * i <= n; i++) {
        if(n % i == 0)
            return false;
    }
    return true;
}
void init()
{
    int i, k;
    k = 0;
    for(i = 2; i < 100000; i++) {
        if(prime(i))
            isprime[k++] = i;
    }
}
void solve()
{
    int i, n, flag, k, t;
    init();
    printf("Enter number to be factored: ");
    while(~scanf("%d", &n)) {
        k = flag = 0;
        if(prime(n)) {
            printf("%d\n", n);
        } else {
            t = n;
            while(isprime[k] < n) {
                while(t % isprime[k] == 0) {
                    if(!flag) {
                        flag = 1;
                        printf("%d", isprime[k]);
                    } else {
                        printf(" * %d", isprime[k]);
                    }
                    t /= isprime[k];
                }
                k++;
            }
            printf("\n");
        }
        printf("Enter number to be factored: ");
    }
}
int main()
{
    solve();
    return 0;
}   

9、浮点数按照规则转化为整数

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
void Round(float n)
{
    int m;
    m = floor(n);
    if(n > 0) {
        if(n - m < 0.5) {
            printf("%d\n", m);
        } else {
            printf("%d\n", m + 1);
        }
    } else {
        if(n - 0.5 > m) {
            printf("%d\n", m + 1);
        } else {
            printf("%d\n", m);
        }
    }
        
}
int main()
{
    float n;
    while(~scanf("%f", &n))
        Round(n);
    return 0;
}   

10、利用莱布利兹公式计算PI

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
double count(int n)
{
    int t, i;
    double ans = 0.0;
    t = 1;
    for(i = 1; i <= n; i++) {
        ans += t * 1.0 / (2 * i - 1);
        t *= -1;
    }
    return 4 * ans;
}
int main()
{
    printf("%f\n", count(10000));
    return 0;
}   

11、通过扇形的面积近似计算PI

#include<stdio.h>
#include<math.h>
#include<stdbool.h>
#define N 100
void solve()
{
    int i;
    double w, r, ans, x;
    r = 2.0;
    w = r / N;
    ans = 0.0;
    for(i = 1; i <= N; i++) {
        x = w * (i - 0.5);
        ans += sqrt(r * r - x * x) * w;
    }
    printf("%f\n", ans);
}
int main()
{
    solve();
    return 0;
}   
目录
相关文章
|
7月前
|
存储 编译器 程序员
“C“浒传——初识C语言(更适合初学者体质哦!)
“C“浒传——初识C语言(更适合初学者体质哦!)
|
9月前
|
算法 数据可视化 Python
【2023】某python语言程序设计跟学第二周内容
【2023】某python语言程序设计跟学第二周内容
67 0
|
9月前
|
算法 Unix Java
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
初学者值得一看:什么是编程/C语言,编程学习建议,编程解疑与误区注意
119 0
|
9月前
|
缓存 自然语言处理 搜索推荐
【2023】某python语言程序设计跟学第六周内容
【2023】某python语言程序设计跟学第六周内容
45 0
|
存储 C语言
课外闲谈7.C语言期末考试必备知识点
在C语言中使用auto关键字声明一个变量为自动变量,如果没有被声明为其他类型的变量都是自动变量,即,省去类型说明符auto的都是自动变量。其他类型指的是变量的存储类型即:静态类型变量(static )、寄存器类型变量(register)和外部类型变量(extern)。
73 0
课外闲谈7.C语言期末考试必备知识点
|
编译器 开发工具 C语言
震惊!三更编程的第一堂C语言入门课程~
震惊!三更编程的第一堂C语言入门课程~
159 0
震惊!三更编程的第一堂C语言入门课程~
|
人工智能 自然语言处理 Java
软考——软件设计师:第六章:程序设计语言与语言处理程序(编译原理)考点总结(完整篇)
软考——软件设计师:第六章:程序设计语言与语言处理程序(编译原理)考点总结(完整篇)
软考——软件设计师:第六章:程序设计语言与语言处理程序(编译原理)考点总结(完整篇)
|
存储 算法 搜索推荐
程序员学Python算法编程中常见的问题和算法
  一些著名问题与算法   如果您的飞船破了一个洞,我只能深表同情,因为我所解决的99个问题里唯独没有这个问题。   ——匿名者1   本文提到的所有问题与算法,因为有一些算法仅仅是为了试图说明某个原理,而有一些问题仅仅是为了某个算法而创造的。然而,作为索引,这里会列举出学习中最重要的那些问题与算法。   在本文大多数描述中,n代表的是问题规模,如一个序列中的元素数量。而在图论问题中,n表示的是节点的数量,m则表示边的数量。
175 0
|
程序员 UED
《程序设计课》第20181010期  ——一个会写诗的程序员
一切皆是映射. 映射即流. 流即函数. 3个计算模型: 赋值模型 循环和递归 异步和并行 1个结构: 树结构. 队列,栈,数组,链表,树,图等等,都是树.映射树.字典. HashMap. 一切皆是树.计算就是树的生长跟消亡的变换过程. 程序的行为,分为编译期和运行期。
1102 0
|
C语言
C语言+图形编程——自制象棋
C语言+图形编程——自制象棋
1946 0