找回密码
 注册
搜索
热搜: 回贴
  • 前程无忧官网首页 有什么好的平台可以
  • 最新的销售平台 互联网营销的平台有哪
  • 制作网页的基本流程 网页制作和网页设
  • 【帝国CMS】输出带序号的列表(数字排
  • 网站建设公司 三一,中联,极东泵车的
  • 织梦 建站 织梦网站模版后台怎么更改
  • 云服务官网 哪些网站有免费的简历模板
  • 如何建网站要什么条件 建网站要用什么
  • 吉林市移动公司电话 吉林省退休人员网
  • 设计类毕业论文 网站设计与实现毕业论
查看: 1474|回复: 9

刚学c++ 有几个题目不会做了

[复制链接]
发表于 2009-11-5 01:11:02 | 显示全部楼层 |阅读模式 IP:江苏扬州
第一个: 要输入一个整数 然后打印反过来的  象 12345就输出54321 还要1000输出1   然后000123输出321 比较麻烦  而且还要求输入12321这样的数字的时候提示错误


第二个: 写一个程序
         void max(int a[],int [], intc[], int n)
         计算  c[i]=max(a[i],b[i]), i=0....n-2
        我不太懂这个是什么意思


第三个: 写一个程序区别奇数和偶数

       比如说 如果  a[]={1,2,3,4,5}, na=5, 然后 odd[]={1,3,5}, no=3, even[]={2,4}, ne=2
       这里odd是奇数的意思 even是偶数的意思  


希望有高手来帮帮忙哦  在线等哦
发表于 2009-11-5 01:11:04 | 显示全部楼层 IP:江苏扬州
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
   
    long int i,j,k,m,n;
    long int a[10];
     cout<<"Please enter the number:";
     cin>>j;
     n=j;
     cout<<endl;
     for(i=0;j!=0;i++)
     {
     a[i]=j%10;
     j=j/10;
     }
     k=i;
     m=0;
     for(i=0;(k-i>0);i++)
     {
        m+=a[i]*pow(10,(k-i-1));
     }
     if(m==n)
         cout<<"error!!!!!!!"<<endl;
     else
         cout<<"the change number is:"<<m<<endl;

    return 0;
}
楼主看下,这是第一个题目的程序,我自己现编的,可以运行,不知道满足不满足你的要求。()主要方法就是:把这个数的个位,十位,百位等等都求出来,然后再利用一定的算法把它的数反过来书出来,我也说不太清楚,你自己尽力理解吧。)
回复

使用道具 举报

发表于 2009-11-5 01:11:05 | 显示全部楼层 IP:江苏扬州
题目2: 我只说下我自己的看法,我也学C++不久,互相学习吧。

(1)比如说a[5]={2,3,6,4,5}
      b[5]={3,5,1,2,8}
那 c[i]=max(a[i],b[i]), i=0....n-2 这个语句的作用就是把a和b两个数组相同下标的元素进行比较大小,然后就可以得到数组c,
结果就应该是c[5]={3,5,6,4,8}   。

(2)void max(int a[],int [], intc[], int n)
这句应该只是使用函数前的一个声明吧,如果定义的函数不是写在主函数main的前面的话,使用子函数的时候是需要事先进行声明的!!!
回复

使用道具 举报

发表于 2009-11-5 01:11:07 | 显示全部楼层 IP:江苏扬州
题目3:首先我先说明一点:对于初学者来说,像a[]这种不声明长度的数组最好不要用,我个人感觉很难控制,用起来不顺手,所以下面的程序我都给限定长度了,你看下,我们相互学习。

#include<iostream>
using namespace std;
int main()
{
    int a[5]={1,2,3,4,5};
    int odd[5],even[5];
    int no=0,ne=0,i;
    for(i=0;i<5;i++)
    {
        if(a[i]%2!=0){
             odd[no]=a[i];
             no++;
        }
        else{
             even[ne]=a[i];
             ne++;
        }
    }
    cout<<"the odd  is:  ";
    for(i=0;i<no;i++)
        cout<<odd[i]<<"  ";
    cout<<"\nthe number of odd is: "<<no<<endl;
    cout<<"the even  is:  ";
    for(i=0;i<ne;i++)
        cout<<even[i]<<"  ";
    cout<<"\nthe number of even is: "<<ne<<endl;
    return 0;
}
回复

使用道具 举报

发表于 2009-11-5 01:11:08 | 显示全部楼层 IP:江苏扬州
#include <iostream>
using namespace std;
int main()
{
   int a,b=0;
   cin>>a;
   while(a>10)
   {
      b=b*10+a%10;
      a=a/10;
      if(a<10)
      b=b*10+a;
   }
   cout<<b;
   system("pause");
}
楼主可以试试这个算法,刚刚写的,有点小问题,就是1000不能符合LZ的要求~!
回复

使用道具 举报

发表于 2009-11-5 01:11:09 | 显示全部楼层 IP:江苏扬州
#include<iostream.h>
#include<string.h>
#include<stdlib.h>
int GetNum()
{
int intArray1[20];
int intArray2[20];
int Num=0;
int Numinput=0;
int i=0,j=0;
char input[20];
cin>>input;
while(input[j]!='\0')
{if(input[j]!='0'|(i!=0))
{
    intArray1[i]=(int)(input[j])-48;
    Numinput=intArray1[i]+10*Numinput;
    j++;
    i++;}
else
j++;
}
i--;
j=0;
while(i>=0)
{intArray2[j]=intArray1[i];
j++;
i--;
}
i=0;
while(i<j)
{Num=intArray2[i]+Num*10;
i++;
}
for(i=10;;i++)
{if(Num%10==0)
Num=Num/10;
else
{if(Num==Numinput)
{cout<<"error"<<endl;
return 0;}
return Num;}}
}

void main()
{cout<<GetNum()<<endl;
}
回复

使用道具 举报

发表于 2009-11-5 01:11:11 | 显示全部楼层 IP:江苏扬州
第一个题目:
#include <iostream>
using namespace std;
int main()
{
    int a,c,b=0;
    cin>>a;
    while(true)
    {
        c=a;
        while(a>=10)
        {
           b=b*10+a%10;
           a=a/10;
        }
        if(a<10)
        {
            b=b*10+a;
        }
        if(b==c)
        {
            cout<<"error!"<<endl;
        }
        else
        {
           cout<<b<<endl;
        }
        b=0;  
        cin>>a;
    }
   
   
   
}
回复

使用道具 举报

发表于 2009-11-5 01:11:13 | 显示全部楼层 IP:江苏扬州
1) #
回复

使用道具 举报

发表于 2009-11-5 01:11:14 | 显示全部楼层 IP:江苏扬州
1) #include <iostream.h>
void main()
{int a,b,c=0;
cin>>a;
b=a;
while(b)
{c=c*10+b%10;b/=10;}
cout<<c<<endl;
}
2)看不懂啊
3)4楼说的很好了
回复

使用道具 举报

发表于 2009-11-5 01:11:15 | 显示全部楼层 IP:江苏扬州
第二个题目,貌似C[]一个长度为N的数组,数组中每个数为对应A[i]和B[i]中比较大的那一个。
写了一个来实现,不知道对不对。是不是符合楼主的要求。我也才学的,不对的地方多多指教。
#include <iostream>
using namespace std;
void max(int a[],int b[],int c[],int n)
{
    int i;

    if(n>0)
    {   
        for(i=0;i<=n;i++)
        {
            a[i]>b[i]?c[i]=a[i]:c[i]=b[i];
        }
    }
}
main()
{   
    int i;
    const int n=3;
    const int m=5;
    if(n<m && n!=0)
    {
        int a[m]={1,2,3,4,5};
        int b[m]={2,3,2,2,1};
        int c[n];
        max(a,b,c,3);
        for(i=0;i<=3;i++)
        cout<<c[i];
    }
    else
        cout<<"error!";
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-11-6 03:10 , Processed in 0.919114 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表