C语言实验报告4-5

C语言实验报告4-5

焦虑烧麦 69 2022-11-09

实验报告(4)

实验目的:
1、 掌握C语言的循环语句。
2、 掌握C语言循环嵌套的使用方法。

1.编写程序,输出下图所示图形

1

代码

#include <stdio.h>
int main()
{
    char ch = 'A';  //定义开始字母
    int a, b;   //定义两个要循环的变量
    int n = 5;  // 定义一个n方便修改
    for (b = 1; b <= n; b++)    //Outer for 控制行
    {
        for (a = 1; a <= b; a++)    //Inner for 控制列
        {
            printf("%c", ch);   //打印字符
            ch++;   //增加列
        }
        printf("\n");   //Print enter
    }
    return 0;
}

2. 倒序输出乘法口诀表

99

代码

#include <stdio.h>
int main()
{
    int i, j;
    for (i = 1; i <= 9; i++) //Outer for
    {
        for (j = 1; j <= 9; j++) //Inner for
        {
            if (j >= i)
                printf("%d*%d=%2d  ", i, j, i * j);
        }
        printf("\n");
    }
    return 0;
}

3. 输出所有三位的水仙花数

水仙花数:指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。
sxh

代码

#include <stdio.h>
int main()
{
    int num;
    int a, b, c;
    printf("水仙花数为:");
    for (num = 100; num <= 999; num++)
    {
        a = num / 100;
        b = num / 10 % 10;
        c = num % 10;
        if (num == a * a * a + b * b * b + c * c * c)
            printf("%d ", num);
    }
}

实验报告(5)

实验目的:
1、 掌握一维数组的定义、引用、初始化。
2、 熟练掌握一维数组和循环的搭配使用。
3、 掌握二维数组的定义、引用、初始化。
4、 熟练掌握二维数组和循环的搭配使用。
5、 掌握字符数组的定义、引用、初始化。
6、 熟练掌握字符数组和循环的搭配使用。

数组计算

输入10个元素,组成一维数组。求该数组的第五个数、最大值、最小值及总和
11

代码

#include <stdio.h>
int main()
{
    int a[10];
    printf("Please Enter 10 Number:\n");
    for (int i = 0; i < 10; i++)
    {
        /* code */
        scanf("%d", &a[i]);
    }
    // 定义求和,最大值和最小值容器
    int max = a[0], min = a[0];
    int sum = 0;
    //求最大值循环
    for (int i = 0; i < 10; i++)
    {
        /* 比较大小 */
        if (a[i] > max)
        {
            /* 最大值赋给a[i] */
            max = a[i];
        }
    }
    // 求最小值循环
    for (int i = 0; i < 10; i++)
    {
        /* 比较大小 */
        if (a[i] < min)
        {
            /* 最小值赋给a[i] */
            min = a[i];
        }
    }
    //求和
    for (int i = 0; i < 10; i++)
    {
        /* 求值结果赋给a[i] */
        sum += a[i];
    }
    printf("\n该数组的第五个元素为:%d\n", a[4]);
    printf("该数组最大元素为: %d\n", max);
    printf("该数组最小元素为: %d\n", min);
    printf("该数组的和为:%d", sum);
}

矩阵应用

定义一个4*4的二维数组并输入16个整型数据。按矩阵输出这16个数据,并输出主对角线元素(从左上角到右下角这一斜线上的元素)及这些元素的和。
22

代码

#include <stdio.h>
int main()
{
    printf("请输入16个整型数据:\n");
    // 定义四行四列的二维数组,sum用于接收对角线元素的和
    int a[4][4], sum = 0;// sum要参与运算就得赋予初值
    //下面两个循环控制该矩阵为四行四列
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
            // 接收用户输入的16个数据
            scanf("%d", &a[i][j]);

    printf("\n该数组矩阵为:\n");

    //找出主对角线元素
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
        {
            // %-3d意思是在输出项后面加上三个空格
            printf("%-3d ", a[i][j]);
            if (j == 3)
                printf("\n");
        }
    printf("\n主对角线的元素值分别为: ");

    //求主对角线元素的和
    for (int i = 0; i < 4; i++)
        for (int j = 0; j < 4; j++)
            if (i == j)
            {
                printf("%d ", a[i][j]);
                sum += a[i][j];
            }
    printf("\n主对角线的元素和为: %d", sum);
    return 0;
}

字符数组

输入十个字符,然后将输入的字符输出显示,统计其中大写字母的个数,并将结果输出。
33

代码

#include <stdio.h>
int main()
{
    char a[10];
    int sum = 0;
    printf("请输入10个字符:");
    for (int i = 0; i < 10; i++)
    {
        scanf("%c", &a[i]);
        // A-Z 的Ascii码(65 - 90)
        // 所以大于等于65,小于等于90的都是大写字母
        if (a[i] >= 65 && a[i] <= 90)
        {
            sum++;
        }
    }
    printf("输出显示为:\n%s", a);
    printf("大写字母有 %d 个", sum);
    return 0;
}