我正在为C语言提供一个基本的入门课程。我得到了整个程序的功能,但它没有产生所需的输出。
任务是编写一个程序,要求用户输入一个整数值并修改输入,以便1s和100s位置具有相同的数字,无论值是什么值。
例如:
1234将被修改为1434
1969年将修改为1969年
2025将修改为2525
由于某种原因,程序选择较小的值来修改用户输入,而不是取较大的1和100位值。
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;
}
答案 0 :(得分:1)
您需要在此声明中反转该因素。
factor = (oneDigit > hundredDigit) ? 1 : 100;
使用
factor = (oneDigit > hundredDigit) ? 100 : 1;
您需要将(larger - smaller) * factor;
添加到tmp
,而不是减去。
而不是:
tmp = tmp - (larger - smaller) * factor;
使用:
tmp = tmp + (larger - smaller) * factor;
答案 1 :(得分:1)
代码行:
// New modified digit
tmp = tmp - (larger - smaller) * factor;
没有任何意义。
在任何一种情况下(oneDigit
较大或hundredDigit
较大),您需要将某些值添加到tmp
,而不是减去强>
此外,您已将该因子计算为反向。 必须是:
factor = (oneDigit > hundredDigit) ? 100 : 1;
答案 2 :(得分:1)
改变这个:
pwdTextField.hidden = true
// Start the activity indicator
activityIndicator.startAnimating()
// How can I make this happen before the actual request?
let token = pwdTextField.text.trim()
let requestURL = "https://myapi.com/authenticate/"
manager.POST(requestURL, parameters: [ "code" : token ], success: { (operation: AFHTTPRequestOperation!, responseObject: AnyObject!) in
NSLog("Success! Response is \(responseObject.description)")
}, failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
println("Failure! Error is: \(error.localizedDescription)")
self.displayLoginAttempErrorAlert()
}).waitUntilFinished()
到
factor = (oneDigit > hundredDigit) ? 1 : 100;
并且还要改变
factor = (oneDigit > hundredDigit) ? 100 : 1;
到
tmp = tmp -(larger - smaller) * factor;