我在C++中获得了此代码,其主要任务是计算两次之间的差异。首先它应该为两个结构变量赋值。之后它应该找出哪一个时间先开始。它将做的最后一件事是计算时间之间的差异。如何从多个结构变量(永久存储)的临时结构变量传递变量
我与这个码的问题不是我无法通过从一个临时结构变量变量给另一个变量,问题是当我通过的第二时间从所述临时结构变量到所述第二结构变量,从变量第一个结构变量被程序遗忘。无论如何,让变量传递到一个结构变量永久?
这里是我的代码:
#include <iostream>
using namespace std;
const int maxAddTime = 141; // 23 hours + 59 min. + 59 sec.
const int minAddTime = 0;
int addTime;
char choice;
bool done = false;
struct timeset {
int hour;
int minute;
int second;
};
int main(){
timeset time1, time2, temp;
do {
int times = 1;
while (times <=2) {
do {
cout << "Write your " << times << " time (hh mm ss)" << endl;
temp = (times == 1) ? time1 : time2;
cin >> temp.hour >> temp.minute >> temp.second;
int addTime = temp.hour + temp.minute + temp.second;
if (addTime < minAddTime || addTime > maxAddTime) {
cout << "Invalid time!" << endl;
cout << "Do you want to change the time? (Y)es or (N)o?" << endl;
cin >> choice;
}
else {
choice = 'n';
times++;
}
if (times == 1){
time1 = temp;
cout << time1.minute ;
}
else {
time2 = temp;
cout << time2.minute << endl;
}
break;
}
while (choice != 'n' || choice != 'N');
}
if (time1.hour > time2.hour || time1.minute > time2.minute ||
time1.second > time2.second) {
cout << "The first time comes first!\n";
}
else if (time1.hour < time2.hour || time1.minute < time2.minute ||
time1.second < time2.second) {
cout << "The second time comes first!\n";
}
else {
cout << "The times are equal!\n";
}
int addTime = time1.hour + time1.minute + time1.second;
cout << addTime << endl;
addTime = addTime - (time2.hour + time2.minute + time2.second);
cout << addTime << endl << endl;
}
while (!done);
return 0;
}
我使用一个临时值,因为我想在代码中有较少的重复。这是我想要time1的过程 - > temp - > time1,time2 - > temp - > time2程序正在做的是这样的:time1 - > temp - > time1,time1 - >一些高变量,time2 - > temp - > time2 – CuriousGuy1 2014-09-28 23:56:54