任意输入一个3位数,然后逆序输出,如输入123,输出321。用八进制的形式输出各位数字的ASCII码。

如题所述

#include <stdio.h>

#define MAX_BUF_SIZE 1024 /* 缓冲区大小 */

#define NEED_SIZE 3 /* 需要输入的大小 */

int main()
{
int i = 0;
int ch;
int buffer[MAX_BUF_SIZE] = {}; /* 缓冲区 */
puts("输入3个数字:");

/* 开始输入 */
while ((ch = getchar()) != EOF && i < NEED_SIZE)
{
buffer[i++] = ch;
}

/* 输出 */
puts("8进制的ASCII码为:");
for (i = NEED_SIZE-1; i >= 0; --i)
{
printf("%o ", buffer[i]); /* %o 指定8进制 */
}
putchar('\n'); /* 换行 */
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-31
很简单啊 !把那个数放进一个栈中,然后输出就是逆序的!
第2个回答  2011-03-31
lt;stdio.h>
void p();
void main()
{
p();
putchar('\n');
}
void p()
{
char ch;
ch=getchar();
if(ch!='\n') p();
if(ch=='\n') putchar('\n');
else putchar(ch);
}

(2)网上找的:
C++语言环境下代码如下:

#include <iostream.h>
int summy(int x)
{
int a=0;
while(x!=0)
{
a=a*10+x%10;
x=x/10;
}
return a;
}
void main()
{
int x;
cout<<"请输入一个正整数:";
cin>>x;
cout<<x<<"的翻转为"<<summy(x)<<endl;
}

希望是正确的,试试吧,呵呵
相似回答