新学c语言函数,利用函数完成整数逆向输出。
球轻骂()
#include <stdio.h>
#include <math.h>
void s(int n)
{
while(n){
n=n/10;
ws++;
}
return ws;
}
void fun(int n,int m)
{
int s=0,i,j,a=1;
for(i=1;i<=m;i++){
for(j=1;j<i;j++){
a=a*10;
}
s=s+(n%10)*a;
n=n/10;
}
return s;
}
int main()
{
int n;
scanf("%d",&n);
if(n<0){
printf("-");
n=-n;
}
printf("%d",fun(n,s(n)));
return 0;
}
题主考虑的复杂了,修改如下,供参考:
#include <stdio.h>
#include <math.h>
#if 0
int s(int n) //void s(int n)
{
int ws = 0; //修改
while (n) {
n = n / 10;
ws++;
}
return ws;
}
void fun(int n, int m)
{
int s = 0, i, j, a = 1;
for (i = 1; i <= m; i++) {
for (j = 1; j < i; j++) {
a = a * 10;
}
s = s + (n % 10) * a;
n = n / 10;
}
return s;
}
#endif
int fun(int n)
{
int k = 0;
while (n) {
k = k * 10 + n % 10;
n /= 10;
}
return k;
}
int main()
{
int n;
scanf("%d", &n);
if (n < 0) {
printf("-");
n = -n;
}
printf("%d", fun(n));
//printf("%d", fun(n, s(n)));
return 0;
}
#include <stdio.h>
int fun(int n);
int main(void)
{
int x;
scanf("%d",&x);
printf("%d的逆向是%d\n",x,fun(x));
return 0;
}
int fun(int n)
{
int m,res;
res=0;
//以下if语句是为了改变m的值,且用n<0来区分正负数
if(n<0)
m=n;
else
m=-n;
while(m!=0)
{
//除10可以扔掉(舍弃)一位数,
res=res*10+m%10;
//对10取余数,可以分离得到最后一位
m=m/10;
}
//下面的if语句是为了让res符号回到原先得符号
if(n>=0)
return -res;
else
return res;
}