注册 登录
编程论坛 C++教室

如何让一组数据倒着输出。

lyj2010lyj 发布于 2010-10-14 15:30, 888 次点击
如123456    输出654321
5 回复
#2
m21wo2010-10-14 16:36
好多方法啊 !!!
可以将数组定义为字符型,数组型!具体方法可以有递归,堆栈,后者最笨的方法,利用循环倒着输出,等等!
譬如:
利用循环倒着输出:
#include <iostream>
using namespace std;
int main()
{
int n;
int* a;
cout<<"请输入数组的长度"<<endl;
cin>>n;
a=new int[n];
for(int i=0;i<n;i++)
   cin>>a[i];
for(int i=n-1;i>=0;i--)
   cout<<a[i];
}
递归:
#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
const int N=20;
void f(string s,int n)
{
    cout<<s[n-1];
    if(n>1)
        f(s,--n);
}
int main()
{
    string s[N];
    int i=0;
    while(cin>>s[i])
        i++;
    cin.clear();
   
     cin.sync();
    cout<<"原先的句子为:"<<endl;
    for(int j=0;j<i;j++)
    {
        cout<<setw(8);
        cout<<s[j];
        
    }
    cout<<"\n置换后句子为:"<<endl;
    for(int k=0;k<i;k++)
    {
        int n=s[k].length();
        f(s[k],n);
        cout<<setw(2);
    }
    cout<<endl;

}

堆栈也可以的!利用<stack>很容易实现的


#3
xinyuan542010-10-14 17:09
#include "stdafx.h"
#include  "iostream"
using namespace std;
int  convert(int number);
int   main()
{
int   number,   inversenumber;
cout <<"输入一个整数:   ";
cin >> number;
inversenumber=convert(number);

cout <<"颠倒后的数:  "<<inversenumber<<endl;
}

int convert(int number)
{
    int inversenumber=0;   
    for (;number;) //当number变成0的时候就结束循环了```既for语句的条件值为0跳出循环
    {        
        inversenumber=inversenumber*10+number%10;
        number=number/10;        
        
    }

    return inversenumber;
}
这个题目不知道在那看到过

[ 本帖最后由 xinyuan54 于 2010-10-14 17:12 编辑 ]
#4
2010-10-19 15:24
简单的要命哦
#5
zfk3052010-10-19 15:58
感谢!!
#6
shining小南2010-10-21 19:10

#include<iostream>
using namespace std;
int main()
{
    char a[20];
    char temp;
    int j=0;
    cout<<"input a string with end '#':";
    do
    {
        cin>>temp;
        if(temp!='#')
        {
            a[j]=temp;
            
        }
        else
        {
            a[j]='\0';
            break;
        }
        cout<<a[j];
        j++;
    }while(temp!='#');
   
    cout<<"倒置后的数组为:";
    for(int i=j-1;i>=0;--i)
    {
        cout<<a[i];
    }
    cout<<endl;
    return 0;
}
1