数据结构上机1

1、题目: 将1~10存入数组a10,并将其逆序输出

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(1) 将1~10存入数组a[10],并将其逆序输出

#include <stdio.h>

int main() {
    int a[10];
    // 将1到10存入数组a[10]
    for (int i = 0; i < 10; i++)
    {
        a[i] = i + 1;
    }
    // 逆序输出数组a[10]
    printf("逆序输出数组:\n");
    for (int i = 9; i >= 0; i--) 
    {
        printf("%d ", a[i]);
    }
    return 0;
}

结果展示:

2、题目://(2) 用指针方式编写程序:从键盘输入10个整型数据并存入数组,要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后的一个输入的数交换。

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(2) 用指针方式编写程序:从键盘输入10个整型数据并存入数组,
//    要求将10个数中最大的数与第一个输入的数交换;将10个数中最小的数与最后的一个输入的数交换。
#include <stdio.h>

void swap(int* a, int* b) 
{
    int temp = *a;
    *a = *b;
    *b = temp;
}

int main() 
{
    int arr[10];

    printf("请输入10个整型数据:\n");
    for (int i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
    }

    int* max = arr;
    int* min = arr;

    // 寻找最大和最小值的指针
    for (int i = 1; i < 10; i++) 
    {
        if (arr[i] > *max) 
        {
            max = &arr[i];
        }
        if (arr[i] < *min) 
        {
            min = &arr[i];
        }
    }

    // 交换最大值和第一个输入的值
    swap(max, &arr[0]);

    // 交换最小值和最后一个输入的值
    swap(min, &arr[9]);

    printf("交换后的数组:\n");
    for (int i = 0; i < 10; i++) 
    {
        printf("%d ", arr[i]);
    }

    return 0;
}

结果展示:

3、题目://(3) 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。
要求:从键盘依次输入5个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分,并将5个学生的数据在屏幕上输出。

cpp 复制代码
#define _CRT_SECURE_NO_WARNINGS 1
//(3) 有5个学生,每个学生的数据包括学号、姓名、三门课的成绩、平均分。
//要求:从键盘依次输入5个学生的学号、姓名、三门课的成绩,自动计算三门课的平均分,并将5个学生的数据在屏幕上输出。

#include <stdio.h>

// 结构体定义:学生信息
struct Student 
{
    int student_id;
    char name[50];
    float scores[3];
    float average_score;
};

int main() 
{
    struct Student students[5];
    printf("请输入5个学生的信息:\n");

    // 输入学生信息
    for (int i = 0; i < 5; i++) 
    {
        printf("学生%d的学号: ", i + 1);
        scanf("%d", &students[i].student_id);

        printf("学生%d的姓名: ", i + 1);
        scanf("%s", students[i].name);

        printf("学生%d的三门课成绩(用空格分隔): ", i + 1);
        for (int j = 0; j < 3; j++) 
        {
            scanf("%f", &students[i].scores[j]);
        }

        // 计算平均分
        float sum = 0;
        for (int j = 0; j < 3; j++) 
        {
            sum += students[i].scores[j];
        }
        students[i].average_score = sum / 3;
    }

    printf("\n学生信息如下:\n");

    // 输出学生信息
    for (int i = 0; i < 5; i++) 
    {
        printf("学号: %d\n", students[i].student_id);
        printf("姓名: %s\n", students[i].name);
        printf("三门课成绩: %.2f, %.2f, %.2f\n", students[i].scores[0], students[i].scores[1], students[i].scores[2]);
        printf("平均分: %.2f\n", students[i].average_score);
        printf("\n");
    }

    return 0;
}

结果展示:

希望对你有所帮助

相关推荐
烂蜻蜓1 小时前
Flask入门教程(二十六):Session API——用户会话状态管理
后端·python·flask
郑州光合科技余经理3 小时前
本地生活服务系统:成品模块和定制接口怎么划界
java·前端·人工智能·后端·系统架构·php·ai编程
小淮AI6 小时前
从“刷题”到“追问”:AI课堂正在重塑哪些学习旧习惯?
人工智能·学习
736c7 小时前
C语言-结构体 08
c语言
736c7 小时前
C语言-数组 07
c语言·开发语言
shehuiyuelaiyuehao7 小时前
算法31,前缀和,可被k整除的子数组
数据结构·python·算法
wixzjsh8 小时前
TCP通信与HTTP协议学习笔记:粘包、三次握手、四次挥手与C/S、B/S模型
学习·tcp/ip·http
ZhiMuZhiLing8 小时前
拓客软件学习成本实测方法论:从注册到出第一批名单要多久
学习·流量运营·用户运营
kakakahahahaha8 小时前
【Windows】C盘低空间反复复发的排查与扩容边界
c语言·windows·电脑·笔记本电脑·内容运营·软件需求
程序员大雄学编程8 小时前
微积分46. 无穷级数四大核心性质:从理论到实践的全方位解析
python·学习·微积分·学习工具