是否有可能通过在C语言中使用单个变量(int a)来读取和添加两个或三个不同的整数?
我不想使用数组
答案 0 :(得分:3)
我不确定我能不能找到你,但是,例如,如果你想添加2个16位整数和一个32位整数,你可以做到
#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>
int main()
{
uint32_t a;
printf("Enter number 1: ");
scanf("%hd", (uint16_t *)(&a));
printf("Enter number 2: ");
scanf("%hd", ((uint16_t *)(&a))+1);
printf("%X\n", a);
printf("Sum = %"PRIu32"\n", (uint32_t)(*(uint16_t *)(&a)) + *(((uint16_t *)(&a)) + 1));
return 0;
}
逻辑是考虑变量等于字节数组,这就是它。
此实现仍然存在问题HERE
答案 1 :(得分:0)
没有。每次将新值赋予同一变量时,它都会替换旧值。如果你不想使用数组并且它是一个简单的代码来添加数字,只需声明三个变量并将每个值赋值给其中一个。
答案 2 :(得分:0)
我不知道你是否愿意这样做,但你能做到的另一种方法就是接受像计算器一样的输入,并在对它们应用操作之前解析为int。
像这样的东西
#include <stdio.h>
#include <string.h>
int main ()
{
char buffer[256];
char * pch;
printf("input your numbers in this format ${number1}+${number2}...: ");
fgets (buffer, 256, stdin);
int sum = 0;
pch = strtok (buffer, "+");
while (pch != NULL)
{
sum += atoi (pch);
pch = strtok (NULL, "+");
}
printf("the sum is %\n", sum);
return 0;
}
所以,运行它并输入2 + 2 + 2,它会为你做计算。感谢