【发布时间】:2015-07-06 18:50:21
【问题描述】:
我正在学习 C 的基本介绍课程。我让整个程序运行起来,但它没有产生应有的所需输出。
任务是编写一个程序,要求用户输入一个整数值并修改输入,以便 1 和 100 的位具有相同的数字,无论哪个值较大。
例如:
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;
}
【问题讨论】:
标签: c visual-studio