C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t下面是我编写的,没有语法错误,但算不出结果.帮我找到

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/30 02:56:27
C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t下面是我编写的,没有语法错误,但算不出结果.帮我找到

C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t下面是我编写的,没有语法错误,但算不出结果.帮我找到
C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!
高位依旧是高位,低位依旧是低位,然后输出t
下面是我编写的,没有语法错误,但算不出结果.帮我找到自己错在哪里了,
#include
void fun(int i,int n,int *p)
{
int k;
i=0;
while(n!=0)
{
k=n%10;
if((k%2)!=0)
{ i++; *p++=k; } //i 是计算器,记录有多少个数字
n/=10;
}
}
void main()
{
int n,t[100],*p,i; //i 是计算器,记录有多少个数字
p=t; //将数组t的首地址给p
printf("input the integer:\n");
scanf("%d",&n);
printf("the original is %d\n",n);
fun(i,n,p); //有i个数字
int a;
for(a=i-1;a>=0;a--)
printf("the later number is %d",t[a]);
}

C语言:整数各位取奇数!将一个整数中的每位上为奇数的数依次取出,构成一个新数放在t中!高位依旧是高位,低位依旧是低位,然后输出t下面是我编写的,没有语法错误,但算不出结果.帮我找到
修改了. 给你删了一个变量
void fun(int *i,int n,int *p)
{
int k;
*i=0;
while(n!=0)
{
k=n%10;
if((k%2)!=0)
{ (*i)++; *p++=k; }

n/=10;

}

}
int main(void)
{
int n,t[100],i;
//p=t;
printf("input the integer:\n");
scanf("%d",&n);
printf("the original is %d\n",n);
fun(&i,n,t);
int a;
printf("the later number is : ");
for(a=i-1;a>=0;a--)
printf("%d",t[a]);
printf("\n");
return 0;
}