一个可爱的女孩要我帮忙做的东西 为了爱情 大家帮帮我
给一个不多于5位的正整数,要求:1 求出它是几位数;2 分别打印出每一位数字;3 按逆序打印出各位数字,例如原数为321,应输出123。
下面是我写的 大家看下
编译通过 不能执行 内存问题
#include <iostream.h>
const int SIZE =5;
int fun1(int s[])//求长度函数
{
int i=0;
while(s[i]!='/0')
i++;
return i;
}
int fun2(int p[],int j)//求逆数
{
int i=0;
int t;
while(i<j)
{
t=p[i];p[i]=p[j];p[j]=t;
i++;j--;
}
return p[SIZE];
}
void main()
{
int sh[SIZE],length;
int sh2[SIZE];
cout<<"请输入一个不多于5位的正整数:";
cin>>sh[SIZE];
if(fun1(sh)>5)
{
cout<<"输入的数据不合要求,请重新输入:";
cin>>sh[SIZE];
}
length=fun1(sh);
cout<<"你输入的是:"<<length<<"位数!"<<endl;
for(int i=0;i<=fun1(sh);i++)
cout<<"第"<<i+1<<"个数是:"<<sh[i]<<endl;
sh2[SIZE]=fun2(sh,fun1(sh));
cout<<"逆数为:"<<sh2<<endl;
}
问题点数:20、回复次数:39Top
1 楼lw1a2(一刀 现在改六点下班了:()回复于 2005-04-03 19:55:46 得分 0
一一;是男人就自己做Top
2 楼pcboyxhy(-273.15℃)回复于 2005-04-03 19:56:32 得分 5
char str[10];
cin>>str;
char *p=str;
while(*p) cout<<*p++<<" ";
cout<<endl;
while(p>=str) cout<<*p--<<" ";
Top
3 楼kobefly(科比--网络学习中)回复于 2005-04-03 20:05:14 得分 5
#include <iostream.h>
#include <string.h>
const int SIZE =5;
int fun1(char s[])//Ç󳤶Ⱥ¯Êý
{
int i=0;
while(s[i]!='\0')
i++;
return i;
}
char* fun2(char p[],int j)//ÇóÄæÊý
{
int i=0;
int t;
while(i<j)
{
t=p[i];p[i]=p[j];p[j]=t;
i++;j--;
}
return p;
}
void main()
{
int length;
char sh[SIZE];
char sh2[SIZE];
cout<<"ÇëÊäÈëÒ»¸ö²»¶àÓÚ5λµÄÕýÕûÊý:";
cin>>sh;
if(fun1(sh)>5)
{
cout<<"ÊäÈëµÄÊý¾Ý²»ºÏÒªÇó,ÇëÖØÐÂÊäÈë:";
cin>>sh;
}
length=fun1(sh);
cout<<"ÄãÊäÈëµÄÊÇ:"<<length<<"λÊý!"<<endl;
for(int i=0;i<fun1(sh);i++)
cout<<"µÚ"<<i+1<<"¸öÊýÊÇ:"<<sh[i]<<endl;
strcpy(sh2,fun2(sh,length - 1));
cout<<"ÄæÊýΪ:"<<sh2<<endl;
}Top
4 楼kobefly(科比--网络学习中)回复于 2005-04-03 20:05:45 得分 0
靠
乱套了
中文的地方都是你自己的中文
Top
5 楼kozzii(double-double)回复于 2005-04-03 20:14:33 得分 0
int足够了Top
6 楼Salam2001(Upgrading : C++ and Data Structure ...)回复于 2005-04-03 20:21:23 得分 0
-_-!! 你还算是男人...
除非拿爱情作幌子...
这么简单的问题...唉~~~女孩子就是好骗...Top
7 楼yanyzheng(小正)回复于 2005-04-03 20:26:08 得分 0
我刚学好不好~~
不要这样打击我的积极性好不好Top
8 楼MagicCarmack(MagiC++)回复于 2005-04-03 20:34:42 得分 0
楼上的解得好Top
9 楼showtime83(我要学习)回复于 2005-04-03 20:39:09 得分 0
这个题目不是很难,是老潭课后的习题,具体怎么做我记不太清了,反正只需用到前几章的简单内容就行了,不需要用到数组,如果你明天还没有做好的话,我把答案给你!
我c只学了一半,是个菜鸟,呵呵!要不现在就能告诉你答案了.Top
10 楼du51(郁郁思扬)回复于 2005-04-03 20:52:01 得分 5
#include <iostream>
using namespace std;
int fun1(int n) //求长度函数
{
int i=0;
if(n<=0)return -1;
else
{
while(n){i++;n/=10;}
return i;
}
}
void fun2(int p) //求逆数
{
cout<<"逆数为:";
while(p)
{
cout<<p%10;
p/=10;
}
cout<<endl;
}
void fun3(int p) //输出正序的数
{
static int count;
int i=10000;
while(p)
{
if(p/i)
{
cout<<"第"<<(count++)+1<<"个数是:"<<p/i<<endl;
p=p%i;
}
else i=i/10;
}
cout<<endl;
}
int main()
{
int n,length;
cout<<"请输入一个不多于5位的正整数:"<<endl;
cin>>n;
length=fun1(n);
if(length>5)
{
cout<<"输入的数据不合要求,请重新输入:";
cin>>n;length=fun1(n);
}
cout<<"你输入的是:"<<length<<"位数!"<<endl;
fun3(n);
fun2(n);
system("PAUSE");
return 0;
}Top
11 楼zhange000( 雄鹰飞翔)回复于 2005-04-03 21:07:16 得分 0
其实这个问题用数据结构的知识很容易做
用一个堆栈
就把你的所有问题都 解决了.Top
12 楼shine51151(美丽心情)回复于 2005-04-03 21:16:41 得分 5
#include <iostream>
using namespace std;
#define N 5
void main()
{
int a[N],num,i=0;
cout << "Input a number with no more than 5 digits :\t";
cin >> num;
while(num)
{
a[i++]=num%10;
num/=10;
}
cout << "\nThe number you put has " << i << " digits in all";
cout << "\n\nHere with position from high to low all the digits are :\n\n";
for(int j=i-1;j>=0;j--)
cout << a[j] << "\t";
cout << "\n\nThe number with its digits in an reverse order is :\n\n";
for(int k=0;k<i;k++)
cout << a[k] << "\t";
}
Top
13 楼warmage(严武)回复于 2005-04-03 21:17:18 得分 0
upTop
14 楼shine51151(美丽心情)回复于 2005-04-03 21:18:42 得分 0
定冠词an 改为a ,见笑了Top
15 楼shine51151(美丽心情)回复于 2005-04-03 21:21:30 得分 0
#include <iostream>
#include <cstdlib>
using namespace std;
#define N 5
void main()
{
int a[N],num,i=0;
cout << "Input a number with no more than 5 digits :\t";
cin >> num;
while(num)
{
a[i++]=num%10;
num/=10;
}
cout << "\nThe number you put has " << i << " digits in all";
cout << "\n\nHere with position from high to low all the digits are :\n\n";
for(int j=i-1;j>=0;j--)
cout << a[j] << "\t";
cout << "\n\nThe number with its digits in a reverse order is :\t";
for(int k=0;k<i;k++)
cout << a[k];
cout << endl << endl;
system("pause");
}
Top
16 楼shine51151(美丽心情)回复于 2005-04-03 21:26:40 得分 0
#include <iostream>
#include <cstdlib>
using namespace std;
#define N 5
void main()
{
int a[N],num,i=0;
cout << "Input a number with no more than 5 digits :\t";
cin >> num;
while(num)
{
a[i++]=num%10;
num/=10;
}
cout << "\nThe number you put has " << i << " digits in all";
cout << "\n\nHere with position from high to low all the digits are :\n\n";
for(int j=i-1;j>=0;j--)
cout << a[j] << "\t";
cout << "\n\nThe number with its digits in a reverse order is :\t";
for(int k=0;k<i;k++)
cout << a[k];
cout << endl << endl;
system("pause");
}Top
17 楼dearlulu(鹿鹿)回复于 2005-04-03 21:34:16 得分 0
大哥、mm:我也快毕业了,基础可以,较为熟练c,c++,可别人不要我,说没工作经验。没项目。先到小公司发展好还是找个较为轻松的非遍程工作自学好?
谢谢Top
18 楼dearlulu(鹿鹿)回复于 2005-04-03 21:42:44 得分 0
大哥、mm们:我也快毕业了,基础可以,较为熟练c,c++,可别人不要我,说没工作经验。没项目。先到小公司发展好还是找个较为轻松的非遍程工作自学好?
谢谢Top
19 楼net_fogprince(韶华)回复于 2005-04-03 23:14:37 得分 0
#include <iostream>
int length(int n,int *a)
{
int i=0;
if n<0 return -1;
else {
while(n){
a[i]=n%10;
n/=10;
i++;}
return i;
}
}
void counter(int *a,int n)
{
int i,tmp;
for(i=0;i<n;i++)
{
tmp=a[i];
a[i]=a[n-i-1];
a[n-i-1]=tmp;
}
}
main()
{
int n,a[5];
int length;
cin>>n;
length=length(n,a);
cout<<length;
for(int i=0;i<length;i++)
cout<<a[i];
counter(a,length/2);
for(i=0;i<length;i++)
cout<<a[i];
}
Top
20 楼cocoy(椰子丫丫)回复于 2005-04-03 23:21:44 得分 0
找个小公司先赚点经验值的好,在工作中也比自学提的快Top
21 楼sangxiaoqiang(我是一只小虾米)回复于 2005-04-04 00:39:13 得分 0
使用C++中STL的栈结构(亦可使用自己实现的 栈结构),将各个数字打印出来,再依次入栈,求出栈长度,依次输出栈顶元素,一切OK了Top
22 楼antter(JiangMiao)回复于 2005-04-04 01:19:12 得分 0
#include <iostream>
using namespace std;
void main()
{
char num[6];
int n,i;
cin.getline(num,6);
cout<<"长度:"<<(n=strlen(num))<<endl;
for(i=0;i<n;i++)
cout<<"第"<<i+1<<"位:"<<num[i]<<endl;
cout<<"逆序输出:";
for(i=n-1;i>=0;i--)
cout<<num[i];
system("pause");
}Top
23 楼hawklxr(下虾米)回复于 2005-04-04 07:36:35 得分 0
#include<stdio.h>
#include<iostream.h>
void main()
{
char stack[2][7];
int top1=-1, top2=-1;
while((stack[0][++top1]=getchar())!='\n');
cout<<"这个数的位数为: "<<top1<<endl;
while(top1>=0) stack[1][++top2]=stack[0][top1--];
top1=top2;
//stack[1][top2]=stack[0][top1];
cout<<"顺序数为: "<<endl;
while(top2>=0){ cout<<stack[1][top2--];}
cout<<"\n逆序数为: "<<endl;
while(top1>=0){ cout<<stack[0][top1--];}
cout<<endl;
}Top
24 楼CppCD(卖女孩的小红帽)回复于 2005-04-04 08:08:56 得分 0
能否借来配我一晚。。。。。Top
25 楼wodeyouxian(人生如梦)回复于 2005-04-04 09:14:57 得分 0
#include<iostream>
#include<cstdlib>
using namespace std;
int main()
{
char str[10];
cout<<"请输入您的数字:\nnum=";
cin>>str;
char *p=str;
int lng;
lng=strlen(str);
cout<<"数据长度为:"<<lng<<endl;
cout<<"正序为:"<<endl;
while(*p) cout<<*p++<<" "; //正序
cout<<endl;
cout<<"逆序为:"<<endl;
while(p>=str) cout<<*p--<<" ";//逆序
system("pause");
}
//借的上面的,蛮好的。可以输出你要的结果的. win2k+dev-c++Top
26 楼skywgs(浪迹天涯)回复于 2005-04-04 09:24:50 得分 0
太EASY了,你要是这也不能亲自给她做,那她可不太高兴哦,她出这么EASY的题是想让你亲自做的,呵呵Top
27 楼latt(latt)回复于 2005-04-04 09:43:10 得分 0
如果是 int 类型,一个循环就能完成
把MM介绍给我吧Top
28 楼Iceguy(大侠龙卷风)回复于 2005-04-04 09:50:44 得分 0
汗……水过Top
29 楼suyun9329(WYSIWYG)回复于 2005-04-04 10:35:25 得分 0
呵呵,是三级网络的上机题吧Top
30 楼MeHawk(追梦之翼)回复于 2005-04-04 10:57:53 得分 0
可爱不是愚蠢的理由。Top
31 楼liumangpp(阿飞)回复于 2005-04-04 10:58:51 得分 0
晕倒
这样的问题应该是最开始学习c的新手的课程设计...
为什么没有女孩子找我问这种问题啊
老天不公啊。。。。Top
32 楼zq_benben(虚空)回复于 2005-04-04 11:29:23 得分 0
呵呵, 楼主还是努力学习吧, 以后争取不要被鄙视Top
33 楼showwecumt(眼皮)回复于 2005-04-04 12:08:44 得分 0
大家应该虚心点的好。
你们不觉得自己太浮了嘛?
问题没有大小难易之分。Top
34 楼nbamjzhldm()回复于 2005-04-04 13:36:44 得分 0
呵呵.楼主不好好学习...Top
35 楼getlow()回复于 2005-04-04 15:03:53 得分 0
其实,你直接和她说你不会做也没有什么所谓的,你现在帮她解了,那以后呢? 诚实的告诉她,你不会,也是一种勇气。Top
36 楼bluedodo(笑三少)回复于 2005-04-04 16:08:14 得分 0
楼主很幸福Top
37 楼jhpxf(我是一是小小鸟,想要飞却飞不高。)回复于 2005-04-04 16:35:49 得分 0
不是吧,这个问题好象VB里面很好做的啊,哈。。我不会C++,帮你顶顶吧Top
38 楼cuipy(崔鹏宇)回复于 2005-04-04 17:58:31 得分 0
什么女孩,你告诉我她的qq,我手把手教。Top
39 楼yanyzheng(小正)回复于 2005-04-04 18:57:24 得分 0
大家不要想多啦,也不要有非分一想,csdn上的人太热情啦,连准女朋友都要抢?
是不是程序员都生活在缺乏爱的空间中啊。哈哈
大家好好努力,不要为了工作放弃了所有
这个问题也许太简单啦,这么多人回答。
我随便给分啦,原谅我啦~!!Top




