c语言不用数组输出逆序数
时间: 2024-11-18 10:13:23 浏览: 5
C语言实现输出数组逆序对个数
在C语言中,如果想不使用数组直接输出逆序数,可以采用栈的数据结构来辅助操作。你可以编写一个函数,逐个读取整数并判断它是否大于栈顶元素,如果是则压入栈,不是则弹出栈顶元素并计数。以下是简单的示例:
```c
#include <stdio.h>
#include <stack>
int countReverse(int num) {
int count = 0;
stack<int> s;
// 遍历输入数字
while (num != 0) {
int last_digit = num % 10; // 取最后一个数字
if (!s.empty() && s.top() > last_digit) { // 如果栈顶大于当前数字
count++; // 逆序数增加
}
s.push(last_digit); // 将当前数字入栈
num /= 10; // 移除最后一个数字
}
return count;
}
int main() {
int input;
printf("请输入一串整数,以零结束:");
while (scanf("%d", &input) == 1 && input != 0) {
countReverse(input);
}
printf("\n逆序数共 %d 个。\n", countReverse(0)); // 结束后统计一次逆序数
return 0;
}
```
当你运行这个程序时,它会询问用户输入一组整数,输入结束后计算并输出逆序数。
阅读全文