int main()
{
int x=69057;
int y=23
printf("%d", x);
printf("%d", y);
return 0;
}
而且它打印6905723.我如何转换印刷数量为整数?我不能这样做
int z=6905723
因为在原始程序中我不知道x和y有什么值。
int main()
{
int x=69057;
int y=23
printf("%d", x);
printf("%d", y);
return 0;
}
而且它打印6905723.我如何转换印刷数量为整数?我不能这样做
int z=6905723
因为在原始程序中我不知道x和y有什么值。
你基本上想要在这里做的是乘以10的最小功率大于y,然后将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);
这里是你如何能得到答案为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;
}
你会遇到一个问题,如果y
是负数,但它不是从你的问题清楚你想在这种情况下要发生什么。
您可以编写一个函数来为你做它:
#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;
}
尝试。非常容易和简单
#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;
}
你试过吗?如果是这样的结果。如果没有 - 给它一个 –
'char buffer [SUFFICIENT_SIZE]; sprintf(buffer,“%d%d”,x,y); int number = strtol(buffer,NULL,0);'? – EOF
你为什么要将打印输出转换成任何东西?只需对数字进行简单的算术运算即可。 –