C语言线性表实现整数反转输出 - 模块化编程示例
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;
}
使用该程序,你可以键入一个整数,然后程序会将该整数的每一位反转输出。
注意:程序中使用了一个简单的顺序线性表来存储整数的每一位,如果输入的整数过大,可能会导致溢出,可以根据实际需求进行修改。
原文地址: https://www.cveoy.top/t/topic/AEQ 著作权归作者所有。请勿转载和采集!