下面是一个使用线性表ADT的基本运算来实现整数反转的模块化编程示例:

#include <stdio.h>
#include <stdlib.h>

typedef struct {
    int *data;  // 数组指针
    int length; // 数组长度
} List;

// 初始化线性表
void initList(List *list, int length) {
    list->data = (int *)malloc(length * sizeof(int));
    list->length = length;
}

// 反转整数
int reverseInt(int num) {
    List list;
    int i, j, temp;

    // 将整数每一位存入线性表中
    int length = 0;
    int n = num;
    while (n > 0) {
        length++;
        n /= 10;
    }
    initList(&list, length);
    n = num;
    for (i = 0; i < length; i++) {
        list.data[i] = n % 10;
        n /= 10;
    }

    // 反转线性表中的元素
    for (i = 0, j = length - 1; i < j; i++, j--) {
        temp = list.data[i];
        list.data[i] = list.data[j];
        list.data[j] = temp;
    }

    // 计算反转后的整数
    int reverseNum = 0;
    for (i = 0; i < length; i++) {
        reverseNum = reverseNum * 10 + list.data[i];
    }

    free(list.data);
    return reverseNum;
}

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

    int reverseNum = reverseInt(num);
    printf('反转后的整数:%d\n', reverseNum);

    return 0;
}

运行程序后,输入一个整数,程序会输出该整数反转后的结果。

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

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

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