数据结构上机1

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

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

#include 

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;
}

结果展示:

数据结构上机1_第1张图片

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

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

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;
}

结果展示:

数据结构上机1_第2张图片

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

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

#include 

// 结构体定义:学生信息
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_第3张图片

希望对你有所帮助

你可能感兴趣的:(刷题之路,数据结构,数据结构,学习,笔记,c语言,c++,算法,后端)