我有
int main ()
{
int x=69057;
int y=23
printf("%d", x);
printf("%d", y);
return 0;
}
它打印6905723.如何将打印的数字转换为整数?我做不到
int z=6905723
因为在原始程序中我不知道x和y有什么价值。
答案 0 :(得分:0)
你在这里想要做的是将x乘以大于y的10的最小幂,然后将y加到它上。
假设x和y小到不会溢出long
结果,你可以这样做:
int x = 69057;
int y = 23
int temp = y;
long result = x;
while (temp > 0) {
result *= 10;
temp /= 10;
}
result += y;
printf("%ld\n", result);
答案 1 :(得分:0)
以下是{@ 1}}的答案。即使您之前不了解int z
和x
,它仍然有效。您只需要确保答案实际上符合y
。
int
如果int main ()
{
int x=69057;
int y=23
char buff[512];
sprintf(buff, "%d%d", x, y);
int z = atoi(buff); /* Now z is equal to 6905723 */
return 0;
}
是一个负数,你会遇到问题,但是在你的问题中你并不清楚你在那种情况下想要发生什么。
答案 2 :(得分:0)
试试这个。非常简单
#include <stdio.h>
#include <conio.h>
#include <math.h>
int main()
{
int x,y,z,a,b;
x=69057;
y=23;
printf("x=%d y=%d\n",x,y);
a = log10(y) + 1;
for (b=0;b<a;b++)
{
x*=10;
}
z=x+y;
printf("z=%d",z);
return 0;
}
答案 3 :(得分:-1)
您可以编写一个函数来为您完成:
#include <stdio.h>
int my_function(int x, int y);
int main()
{
int x = 69057;
int y = 23;
int z = my_function(x, y);
printf("%d\n", z);
return 0;
}
int my_function(int x, int y)
{
int tmp = y;
do {
x *= 10;
} while (tmp /= 10);
return x + y;
}