C程序设计 循环控制程序设计 实验报告

  1. 用for循环控制语句编程:输出一张华氏-摄氏温度转换表,将华氏温度F转换成相应的摄氏温度C后输出,华氏温度的取值范围是[100, 200],每次增加20°F。计算公式:C = (5 / 9)(F - 32)。

一.实验过程:

#include <stdio.h>

int main() {

    int F;

    double C;

    printf("华氏温度转摄氏温度表:\n");

    for(F = 100; F <= 200; F += 20) {

        C = (5.0 / 9) * (F - 32);

        printf("%d°F = %.1f°C\n", F, C);

    }

    return 0;

}

2.输出所有的“水仙花数”。所谓“水仙花数”,是指一个三位数,其各位数字的立方和等于该数本身。例如,153是“水仙花数”,因为

http://img-ph-mirror.nosdn.127.net/d78uLP2PbUMaPsXXDVdS7w==/2885118511301868821.jpg

一.实验过程:

#include <stdio.h>

int main() {

    int num, originalNum, remainder, result = 0;

    printf("水仙花数有: \n");

    for(num = 100; num < 1000; num++) {

        originalNum = num;

        result = 0;

        while(originalNum != 0) {

            remainder = originalNum % 10;

            result += remainder * remainder * remainder;

            originalNum /= 10;

        }

        if(result == num)

            printf("%d\n", num);

    }

    return 0;

}

  1. 有一个分数序列:2/1,3/2,5/3,8/5,13/8,21/13...

                                        求出这个数列的前20项之和。

                                        

求出这个数列的前20项之和。

求出这个数列的前20项之和。

一.实验过程:

#include <stdio.h>

int main() {

    double sum = 0.0;

    for(int i = 1; i <= 20; i++) {

        sum += 1.0 / i;

    }

    printf("数列的前20项之和为: %.2f\n", sum);

    return 0;

}

4.  输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

提示:灵活使用getchar() 函数来按顺序读入所输入字符串里面的各个字符。

一.实验过程:

#include <stdio.h>

int main() {

    char ch;

    int letters = 0, spaces = 0, digits = 0, others = 0;

    printf("请输入一些字符:\n");

    while((ch = getchar()) != '\\n') {

        if((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))

            letters++;

        else if(ch == ' ')

            spaces++;

        else if(ch >= '0' && ch <= '9')

            digits++;

        else

            others++;

    }

    printf("字母=%d, 空格=%d, 数字=%d, 其他=%d\n", letters, spaces, digits, others);

    return 0;

}

  1. 爱因斯坦数学题。爱因斯坦曾出过这样一道数学题:有一条长阶梯,若每步跨2阶,最后剩下1阶;若每步跨3阶,最后剩下2阶;若每步跨5阶,最后剩下4阶;若每步跨6阶,最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。请问,这条阶梯至少有多少阶?

一.实验过程:

#include <stdio.h>

int main() {

    int x = 1;

    while(1) {

        if(x % 2 == 1 && x % 3 == 2 && x % 5 == 4 && x % 6 == 5 && x % 7 == 0) {

            printf("这条阶梯至少有 %d 阶\n", x);

            break;

        }

        x++;

    }

    return 0;

}

  1. 编程求解马克思手稿中的数学题。

   马克思手稿中有一道趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人?

一.实验过程:

#include <stdio.h>

int main() {

    int men, women, children;

    for(men = 0; men <= 30; men++) {

        for(women = 0; women <= 30 - men; women++) {

            children = 30 - men - women;

            if(men*3 + women*2 + children == 50) {

                printf("男人=%d, 女人=%d, 小孩=%d\n", men, women, children);

            }

        }

    }

    return 0;

}

  1. 输入n值,运用循环结构输出下图所示高和上底均为n的直角梯形。

                                                                *****

                                                               ******

                                                              *******

                                                             ********

                                                            *********

                                                    n=5时的直角梯形

一.实验过程:

#include <stdio.h>

int main() {

    int n;

    printf("请输入n的值: ");

    scanf("%d", &n);

    for(int i = 1; i <= n; i++) {

        for(int j = 1; j <= n - i; j++) {

            printf(" ");

        }

        for(int k = 1; k <= n + i - 1; k++) {

            printf("*");

        }

        printf("\n");

    }

    return 0;

}

  • 28
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值