入门的作业题,要求输入3 3输出(3+3)(3+3)=36,输入3,3就是没问题的,输入3 3就变成错误结果了,问一下是为什么
#include<stdio.h>
int main()
{
int a, b, c;
scanf( "%d %d", &a , &b);
c = (a + b)* (a + b) ;
printf( "(%d+%d)( %d+%d)=%d", a, b, a, b, c);
}
这个问题的原因在于你使用的是字符串(string),而不是整数(integer)。当你输入一个整数时,C语言可以正确地将其转换为整数变量,然后进行数学运算。但是,当你输入一个字符串时,C语言将其视为字符数组,并将其解释为一个字符一个字符地读取。在这种情况下,读取到的是字符'3'和'3',而不是整数33。
因此,如果你希望能够正确地执行数学运算,你需要将输入的字符串转换为整数,然后再进行运算。可以使用C语言提供的函数atoi将字符串转换为整数,例如:
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[10];
int num;
printf("Enter a number: ");
scanf("%s", str);
num = atoi(str);
printf("(%d+%d)(%d+%d)=%d\n", num, num, num, num, (num+num)*(num+num));
return 0;
}
在上述代码中,atoi函数将输入的字符串str转换为整数num,然后使用num进行数学运算。
不知道你这个问题是否已经解决, 如果还没有解决的话: