C语言线性表实现整数反转输出 - 模块化编程示例

以下是一个使用线性表基本运算实现整数反转输出的 C 语言程序,通过模块化编程将功能封装在函数中:

#include <stdio.h>

#define MAX_SIZE 100

// 定义线性表结构
typedef struct {
    int data[MAX_SIZE];
    int length;
} SeqList;

// 初始化线性表
void init(SeqList* list) {
    list->length = 0;
}

// 向线性表中插入元素
void insert(SeqList* list, int item) {
    if (list->length == MAX_SIZE) {
        printf('线性表已满,无法插入元素\n');
        return;
    }
    list->data[list->length++] = item;
}

// 反转线性表
void reverse(SeqList* list) {
    int left = 0;  // 左指针
    int right = list->length - 1;  // 右指针

    while (left < right) {
        // 交换左右指针对应的元素
        int temp = list->data[left];
        list->data[left] = list->data[right];
        list->data[right] = temp;

        // 移动指针
        left++;
        right--;
    }
}

// 打印线性表
void print(SeqList* list) {
    for (int i = 0; i < list->length; i++) {
        printf('%d ', list->data[i]);
    }
    printf('\n');
}

int main() {
    SeqList list;
    int num;

    init(&list);

    printf('请输入一个整数:');
    scanf('%d', &num);

    // 将整数的每一位插入线性表
    while (num > 0) {
        int digit = num % 10;  // 取出最低位
        insert(&list, digit);
        num /= 10;  // 去掉最低位
    }

    printf('反转输出结果为:');
    reverse(&list);
    print(&list);

    return 0;
}

使用该程序,你可以键入一个整数,然后程序会将该整数的每一位反转输出。

注意:程序中使用了一个简单的顺序线性表来存储整数的每一位,如果输入的整数过大,可能会导致溢出,可以根据实际需求进行修改。

C语言线性表实现整数反转输出 - 模块化编程示例

原文地址: https://www.cveoy.top/t/topic/AEQ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录