我正在给C做一个基本的入门级课程。我得到了整体程序的功能,但它没有按照它的要求生成所需的输出。修改整数值
任务是编写一个程序,要求用户输入一个整数值并修改输入,以便1s和100s的位置具有相同的数字,而不管数值是多大。
例如:
1234将被修改以1434
1969将被修改以1969
2025将被修改以2525
出于某种原因,而不是取1s和100s的较大值,程序选择较小的值来修改用户输入。
1234 - > 1232
2025 - > 2020
1962 - > 1262
什么可能是错误的任何提示或想法?
#include <stdio.h>
int main() {
int myValue;
int tmp;
int oneDigit;
int hundredDigit;
int larger;
int smaller;
int factor;
printf("\nEnter an int: ");
scanf("%d", &myValue);
// Getting absolute value
tmp = (myValue < 0) ? -myValue : myValue;
// Extracting digits
oneDigit = tmp % 10;
hundredDigit = (tmp/100) % 10;
// Grabbing larger and smaller integer
larger = (oneDigit > hundredDigit) ? oneDigit : hundredDigit;
smaller = (oneDigit > hundredDigit) ? hundredDigit : oneDigit;
// Checking what to factor by
factor = (oneDigit > hundredDigit) ? 1 : 100;
// New modified digit
tmp = tmp - (larger - smaller) * factor;
printf("\nThe modified value of %d is %d\n", myValue, tmp);
return 0;
}
感谢您的快速回复。我试过你的方法,但是当我输入1234时,它给了我1236,这不是预期的输出。但是,当我在1232中输入时,它返回1232,这是预期的输出。你知道为什么会发生这种情况吗?即使在修改您指出的两段代码后仍然不正确。再次感谢你。 –