《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;
}   
目录
相关文章
|
自然语言处理 程序员 编译器
C程序设计介绍
C程序设计是一种计算机编程语言,由美国贝尔实验室的Dennis Ritchie在20世纪70年代初开发。C语言是一种通用的高级编程语言,被广泛用于系统软件开发、嵌入式系统、游戏开发等领域。 C语言具有以下特点: 1. 简洁高效:C语言的语法简洁清晰,具有较高的执行效率。它提供了丰富的操作符和控制结构,使得程序员可以更灵活地进行编程。 2. 低级语言特性:C语言提供了对计算机底层硬件的直接访问能力,可以进行位操作、指针操作等。这使得C语言在系统编程和嵌入式开发中非常有用。 3. 可移植性:C语言的标准库提供了丰富的函数和数据类型,可以在不同的操作系统和硬件平台上进行移植。这使得C语言成为
94 0
|
9月前
|
C语言
第三章 C程序设计
第三章 C程序设计
37 0
|
6月前
|
算法 搜索推荐 程序员
从代码到宇宙:探索编程中的哲学和人生意义
【8月更文挑战第31天】在编程的世界里,我们不仅仅是在编写代码,更是在编织命运的纹理。本文通过技术感悟探讨如何将编程实践与人生的深刻哲理相结合,从而发现代码背后的更广阔天地。我们将一起走进编程语言的核心,解锁那些隐藏在算法和数据结构中的秘密,同时反思技术如何影响我们的生活和思维方式。
编程之禅:代码与生活的和谐共鸣
【6月更文挑战第21天】在数字世界的编织中,我们如同古代的禅师,通过编程探索着宇宙的奥秘。本文将带你走进编程的内在世界,探索如何将代码的严谨与生活的流动相融合,实现技术与日常生活的和谐共鸣。我们将一起学习如何在繁杂的代码中寻找简洁之美,如何通过编程提升生活质量,以及如何将编程哲学应用到个人成长之中。
|
9月前
|
设计模式 算法 程序员
代码之禅:技术感悟与编程艺术
【5月更文挑战第23天】 在数字世界的迷宫中,编程不仅仅是敲击键盘的行为,它是一种思考的艺术,一种创造的表达。本文将探讨编程背后的哲学、实践以及个人成长的故事,揭示编程不只是逻辑和算法的堆砌,而是一种对问题深刻理解后的创造性解答。我们将通过一系列技术感悟,探讨如何提升编程技能,同时保持个人的创新精神和技术的敏锐度。
|
存储 人工智能 C语言
2020_883《C程序设计》
简述C语言中标识符的规定;在给变量、数组和函数起名时,应注意什么?
2020_883《C程序设计》
|
JavaScript Java Linux
掌握多少门编程语言才能成为优秀程序员?
如果想成为一个好的程序员,甚至架构师、技术总监等,显然只精通一种编程语言是不够的,还应该在常见领域学会几门编程语言,正如我们要成为高级人才不仅要会中文还要会英文,甚至还要会德文、俄文一样,其实是每一种语言都给人另一种思维方式,编程语言也一样。
1710 0
|
人工智能 算法
《编程珠玑,字字珠玑》45678读书笔记——编程技巧
写在最前面的 就像上一篇文章说的,“编程永远是后话”!在有了可靠的问题分析过程和数据结构的选择,能正确运行的“二分搜索”代码出现之前,把其主要的思路先在草稿上实现,即伪代码。但由于伪代码执行结果的不确定性,需要有一个验证的过程。
1071 0

热门文章

最新文章