C语言线性表ADT实现整数反转 - 模块化编程示例
下面是一个使用线性表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;
}
运行程序后,输入一个整数,程序会输出该整数反转后的结果。
原文地址: https://www.cveoy.top/t/topic/zpV 著作权归作者所有。请勿转载和采集!