C语言问题简单的很,菜鸟送分,在线等

1.编写一个程序,输入一个正整数,要求将其反向输出,例如:输入123 输出321

#include <stdio.h>
void main()
{
int a , b , c;
int d=0 , e=0 , f=0;

scanf("%d%d%d",&a,&b,&c);

a = d;
b = e;
c = f;

printf("%d%d%d",f,e,d);

}
我写的程序错误
而且我知道我这么写即使正确也会被老师骂死
老大们帮棒我吧~~
帮我详细说下应该怎么写好么?
我只有37分了
先给30分然后追5分
谢谢了
可以用指针
也可以用数组
循环都行~~

第1个回答  2007-05-14
1.程序分析:用第一个与最后一个交换。
2.程序源代码:
#define N 5
main()
{ int a[N]={9,6,5,4,1},i,temp;
printf("\n original array:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
for(i=0;i<N/2;i++)
{temp=a[i];
a[i]=a[N-i-1];
a[N-i-1]=temp;
}
printf("\n sorted array:\n");
for(i=0;i<N;i++)
printf("%4d",a[i]);
}
第2个回答  2007-05-14
#include <stdio.h>
#include <string.h>
#include <math.h>

typedef unsigned UINT;

inline const char* CharToSz(char c)
{
static char szBuffer[2];
szBuffer[0] = c;
return szBuffer;
}

const char* ReverseToSz(UINT n, char* dest)
{
return n > 0 ? strcat(dest, CharToSz(n % 10 + '0')), ReverseToSz(n/10, dest): dest;
}

UINT Digit(UINT n)
{
UINT uiDigit = 0;
do{
++uiDigit;
n /= 10;
}while(n != 0);

return uiDigit;
}

UINT ReverseToUINT(UINT n)
{
return n > 0 ? (n % 10) * (UINT)pow(10.0, Digit(n)-1) + ReverseToUINT(n/10) : 0;
}

int main()
{
UINT uiInput;
char szBuffer[64] = {0};

scanf("%d", &uiInput);

// method 1:
printf("%s\n", ReverseToSz(uiInput, szBuffer));

// method 2:
printf("%d\n", ReverseToUINT(uiInput));
}
第3个回答  2007-05-14
main()
{
int a[10]={1,2,3,4,5,6,7,8,9,0};
int i,j,t,m;
m=10/2
i=0;j=9;
do
{
t=a[i];a[i]=a[j];a[j]=a[i];
i++;
j--;
}while(i<=m)
for("%d ",a[i]);
}
第4个回答  2007-05-14
上面的不对.根本就没有输入,简直就是一派胡言

main()
{
int k,t=0,m;
printf("请输入一个正整数");
scanf("%d",&k);
while(k!=0)
{
m=k%10;
t=t*10+m;
k/=10;
}
printf("the result is %d\n",t);
}本回答被提问者采纳
相似回答