c语言中将两个两位数的正整数x,y合并成一个整数放在b中

将x的十位和个位依次放在z的个位和百位上,y的十位和个位依次在z的千位和十位上
void fun(int x,int y,long *z)
{
int a,b,c,d;
a=x%10;
b=x/10;
c=y%10;
d=y/10;
*z=d*1000+a*100+b*10+c;

}
main()
{
int x,y;
long z;
FILE *out;
printf("input x,y:");
scanf("%d%d",&x,&y);
fun(x,y,&z);
printf("the result is :%ld\n",z);
out=fopen("outfile.dat","w");
for(x=0;x<10;x++)
{
fun(x+77,x+66,&z);
fprintf(out,"%ld\n",z);
}
fclose(out);getch();
}
我按你说的做了,可是结果不对啊,你帮我检查一下,谢谢了

问题:将x的十位和个位依次放在z的个位和百位上,y的十位和个位依次在z的千位和十位上。

思路:首先求出x和y的各位上的数字,然后通过要求乘以10的相应次方最后累加出的结果就是合并后的数。

参考代码:

#include<stdio.h>
int main()
{
int x,y,z;
scanf("%d%d",&x,&y);
z=0;
z += x/10;//x的十位放在z的个位上 
z += (x%10)*100;//x的个位放在z的百位上
z += (y/10)*1000;//y的十位放在z千位上 
z += (y%10)*10;//y的个位放在z的十位上 
printf("%d\n",z); 
return 0;
}
/*
输出: 
12 34
3241
*/
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-09
int a,b,c,d;
a=x%10;//取x的个位
b=x/10;//取x的十位
c=y%10;//取y的个位
d=y/10;//取y的十位
z=d*1000+a*100+b*10+c;

两位数这么做还可以,如果数的位数大了就要考虑用循环,一位一位不断取余数本回答被提问者采纳
第2个回答  2010-03-25
int a,b,c,d;
a=x%10;//取x的个位
b=x/10;//取x的十位
c=y%10;//取y的个位
d=y/10;//取y的十位
z=d*1000+a*100+b*10+c;
第3个回答  2010-03-27
y
相似回答