| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1405 人关注过本帖
标题:刚学c++ 有几个题目不会做了
只看楼主 加入收藏
le1520
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-6
收藏
 问题点数:0 回复次数:11 
刚学c++ 有几个题目不会做了
第一个: 要输入一个整数 然后打印反过来的  象 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是偶数的意思  


希望有高手来帮帮忙哦  在线等哦
搜索更多相关主题的帖子: 在线 
2008-11-06 13:59
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
#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;
}
楼主看下,这是第一个题目的程序,我自己现编的,可以运行,不知道满足不满足你的要求。()主要方法就是:把这个数的个位,十位,百位等等都求出来,然后再利用一定的算法把它的数反过来书出来,我也说不太清楚,你自己尽力理解吧。)
2008-11-06 20:16
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
题目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的前面的话,使用子函数的时候是需要事先进行声明的!!!
2008-11-06 20:26
hitcolder
Rank: 1
等 级:新手上路
威 望:1
帖 子:124
专家分:0
注 册:2008-10-28
收藏
得分:0 
题目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;
}
2008-11-06 20:46
lionmusicyj
Rank: 1
等 级:新手上路
帖 子:98
专家分:0
注 册:2008-9-20
收藏
得分:0 
#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的要求~!
2008-11-06 22:55
kivcare
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2007-6-26
收藏
得分:0 
#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;
}
2008-11-07 03:06
zzz928101
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-16
收藏
得分:0 
第一个题目:
#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;
    }
    
    
    
}
2008-11-19 14:38
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
得分:0 
1) #
2008-11-19 15:16
tangwen88
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2008-11-5
收藏
得分:0 
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楼说的很好了
2008-11-19 15:30
zzz928101
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-11-16
收藏
得分:0 
第二个题目,貌似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!";
}
2008-11-19 15:39
快速回复:刚学c++ 有几个题目不会做了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018250 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved