当前位置: 代码迷 >> C语言 >> [求助]逆序输出
  详细解决方案

[求助]逆序输出

热度:149   发布时间:2007-02-02 12:41:52.0
[求助]逆序输出
将顺序输入的数字或字符串逆序输出,比如:输入:123,输出321。

这个很简单,我就是想不出来
搜索更多相关的解决方案: 逆序  输出  

----------------解决方案--------------------------------------------------------
就当字符串输入,然后倒着输出咯.
----------------解决方案--------------------------------------------------------
这个是课本上的习题,只能用选择语句if或者switch做啊。想了很久就是想不出来
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void main()
{
char *p;
int i,size;
printf("Enter the size:");//输入这个整数(字符串)的位数
scanf("%d",&size);
getchar();
p=(char *) malloc(size*sizeof(char));
if (p==NULL)
{
printf("No memory!\n");
exit(-1);
}
for (i=0;i<size;i++)//输入这个整数(字符串)
scanf("%c",p+i);
for (i=0;i<size/2;i++)
{
char ch=p[i];
p[i]=p[size-i-1];
p[size-i-1]=ch;
}
for (i=0;i<size;i++)//反序输出
printf("%c",p[i]);
printf("\n");
free(p);
}

----------------解决方案--------------------------------------------------------
#include<iostream>
using namespace std;
int main()
{
int f(int *q);
int a[10],i,*p;
for(i=0;i<=9;i++)
cin>>a[i];
p=a;
f(p);
return 0;
}
int f(int *q)
{int i;
for (i=9;i>=0;i--)
cout<<*(q+i)<<" ";
cout<<endl;
return *q;
}
----------------解决方案--------------------------------------------------------
搞一个栈
----------------解决方案--------------------------------------------------------
最简单的解法:
#include "stdio.h"
#include "string.h"
int main(void) {
char s[1000],i;
scanf("%s",s);
for(i=strlen(s)-1;i>-1;i--) printf("%c",s[i]);
}
----------------解决方案--------------------------------------------------------
以下是引用mayulan在2007-2-2 18:12:08的发言:
#include<iostream>
using namespace std;
int main()
{
int f(int *q);
int a[10],i,*p;
for(i=0;i<=9;i++)
cin>>a[i];
p=a;
f(p);
return 0;
}
int f(int *q)
{int i;
for (i=9;i>=0;i--)
cout<<*(q+i)<<" ";
cout<<endl;
return *q;
}

呵呵,C++。谢谢了,不过要求是用IF和SWITCH语句做


----------------解决方案--------------------------------------------------------
以下是引用卧龙孔明在2007-2-2 18:17:11的发言:
最简单的解法:
#include "stdio.h"
#include "string.h"
int main(void) {
char s[1000],i;
scanf("%s",s);
for(i=strlen(s)-1;i>-1;i--) printf("%c",s[i]);
}

这里将字符串长度减1后赋值给i是什么意思啊?谢谢斑竹


----------------解决方案--------------------------------------------------------
strlen函数求出s的长度,返回的是终止字符NULL前的字符个数.减1就恰好表示你输入的最后一个字符

比如 s[1000] = "David"
那i = 5 - 1 = 4
s[4]恰好就是'd'
----------------解决方案--------------------------------------------------------
  相关解决方案