大神们,教一下怎么编写一个按照数组中的逆序对输出数字的c程序?!!!!

C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(num_升学 - QQ志乐园
您的当前位置: &
C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number)
来源: |人气:283 ℃|时间: 22:21:51
为了解决用户可能碰到关于"C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number)"相关的问题,志乐园经过收集整理为用户提供相关的解决办法,请注意,解决办法仅供参考,不代表本网同意其意见,如有任何问题请与本网联系。"C语言:编写程序,输入一个整数,将它逆序组成一个整数后输出。要求定义并调用函数reverse(number)"相关的详细问题如下:
#includedouble reverse(int number);int main(){scanf("%d",&x);y=reverse(x);printf("%.0lf",y);return 0;}double reverse(int number){int sum=0,s;if(number>=0){while(number!=0){s=number%10;sum=sum+s;sum=sum*10;number/=10;}}else{number=-while(number!=0){s=number%10;sum=sum+s;sum=sum*10;number/=10;}return -}}表达一个数比如m,m自身除以10时,要这样写,m/=10或者m=m/10绝对不能写成m/10;在C中这是非法语句,还有你漏了几个冒号,还有你的算法有问题,多乘了一个10,输入123时输出3210,这个算法问题你一定要仔细独立去寻找自己的函数部分肯定出了问题,还有当你输入是100时你输出的肯定得是1而不是001,这个情况你也没有考虑到你在这个函数中double reverse(int number){int sum=0,s;.....}将sum定义为int型而函数的返回值是double型最后返回sum时,你说这能匹配吗根据题目要求,建议将函数返回值改为int型纯手打 请给分,谢谢!!!!
||||点击排行C语言实现单链表逆序与逆序输出实例
投稿:shichen2014
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了C语言实现单链表逆序与逆序输出,是数据结构与算法中比较基础的重要内容,有必要加以牢固掌握,需要的朋友可以参考下
单链表的逆序输出分为两种情况,一种是只逆序输出,实际上不逆序;另一种是把链表逆序。本文就分别实例讲述一下两种方法。具体如下:
1.逆序输出
实例代码如下:
#include&iostream&
#include&stack&
#include&assert.h&
typedef struct node{
//尾部添加
node * add(int n, node * head){
node * t =
t-&next = NULL;
if (head == NULL){
else if (head-&next == NULL){
head-&next =
node * p = head-&
while (p-&next != NULL){
//顺序输出
void print(node * head){
node * p =
while (p != NULL){
cout && p-&data && " ";
void reversePrint(node * p){
if (p != NULL){
reversePrint(p-&next);
cout && p-&data && " ";
void reversePrint2(node * head){
stack&int&
while (head != NULL){
s.push(head-&data);
head = head-&
while (!s.empty()){
cout && s.top() && " ";
int main(){
node * head = NULL;
for (int i = 1; i &= 5; i++){
head = add(i, head);
print(head);
reversePrint(head);
reversePrint2(head);
system("pause");
逆序输出可以用三种方法: 递归,栈,逆序后输出。最后一种接下来讲到。
2.单链表逆序
实例代码如下:
#include&iostream&
#include&stack&
#include&assert.h&
typedef struct node{
node * add(int n, node * head){
node * t =
t-&next = NULL;
if (head == NULL){
else if (head-&next == NULL){
head-&next =
node * p = head-&
while (p-&next != NULL){
node * reverse(node * head){
if (head == NULL || head-&next == NULL){
node * p1 =
node * p2 = head-&
node * p3 = NULL;
head-&next = NULL;
while (p2 != NULL){
p3-&next = p1;
head = p1;
void print(node * head){
node * p =
while (p != NULL){
cout && p-&data && " ";
node * reverse2(node * p){
if (p == NULL || p-&next == NULL){
node * newHead = reverse2(p-&next);
p-&next-&next =
p-&next = NULL;
return newH
int main(){
node * head = NULL;
for (int i = 1; i &= 5; i++){
head = add(i, head);
print(head);
head = reverse(head);
print(head);
head = reverse2(head);
print(head);
system("pause");
这里链表逆序用了两种方法:循环,递归。读者最容易理解的方法就是在纸上自己画一下。
希望本文所述实例对大家的数据结构与算法学习能有所帮助。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 数组中的逆序对 的文章

 

随机推荐