C++ problem
where should I do overflow part? in this code
do not write a new code for me please
///////////////////
// this program read two number from the user
// and display the sum of the number
#include <iostream>
#include <string>
using namespace std;
const int MAX_DIGITS = 10; //10 digits
void input_number(char num[MAX_DIGITS]);
void output_number(char num[MAX_DIGITS]);
void add(char num1[MAX_DIGITS], char num2[MAX_DIGITS], char result[MAX_DIGITS], int &base);
int main()
{
// declare the array = {'0'}
char num1[MAX_DIGITS] ={'0'};
char num2[MAX_DIGITS] ={'0'};
char result[MAX_DIGITS] ={'0'};
int base;
cout << " please enter 10 digits number for this program." << endl << endl;
// base on 2-35
cout << " what base for your numbers? (2-35)" << endl<< endl;
cin >> base;
cin.ignore(100,'\n');
cout << " Enter the first number: " << MAX_DIGITS << " digits " << endl << endl;
// call the input number function to read the input
input_number(num1);
cout << "Enter the second number: "<< MAX_DIGITS << " digits" << endl << endl;
// call the input number function to read the input
input_number(num2);
// sum of the number
add(num1,num2,result,base);
// output
cout << endl;
cout << "Sum of ";
output_number(num1);
cout << " and ";
output_number(num2);
cout << " is ";
output_number(result);
cout << endl;
return 0;
}
//input function
void input_number(char num[MAX_DIGITS])
{
char ch = '0';
int n = 0;
// read the character from user
while((ch = cin.peek())!=' ' && n < MAX_DIGITS)
//store character into array
{
num[n]= ch;
n++;
cin.get(ch);
}
cin.ignore(100, '\n');
//reverse digits in the array to do sum
for (int i= 0; i <n/2 ; i++)
{
char temp = num[i];
num[i]= num[n-1-i];
num[n-1-i] = temp;
}
}
//output function
void output_number(char num[MAX_DIGITS])
{
for (int i=MAX_DIGITS -1 ; i>=0 ; i--)
{
if(num[i]!=0)
{
cout <<num[i];
}
}
}
// sum function
void add(char num1[MAX_DIGITS], char num2[MAX_DIGITS], char result[MAX_DIGITS], int &base)
{
int temp_num1, temp_num2,sum;
int carry1 =0;
int carry2 =0;
char temp;
// repeat the loop for all digits of the array
for (int i=0; i <MAX_DIGITS ; i++)
{
//check if char between 0-9
if (num1[i]>='0'&& num1[i]<'0'+10) //'0'-'9'
{
// change maybe
temp_num1 = num1[i]-'0';
}
else
{
// to uppercase
temp = toupper(num1[i]);
// check if between A-Z
if (temp >= 'A' && temp <='Z')
{
temp_num1 = temp-'A'+10;
}
else
{
cout << " input invaild " << endl;
}
}
// same as num1
if (num2[i] >= '0' && num2[i] <'0'+10)
{
temp_num2 = num2[i] - '0';
}
else
{
// to uppercase
temp = toupper(num2[i]);
// check if between A-Z
if (temp >= 'A' && temp <= 'Z')
{
temp_num2 = temp -'A'+10;
}
else
{
cout << "input invaild" << endl;
}
}
carry1 = carry2;
//calculate
sum = (temp_num1+temp_num2+carry1)% base;
//carry 2
carry2 = (temp_num1+temp_num2+carry1)/ base;
// check sum between 0-10
if (sum >= 0 && sum < 10)
{
result[i] = char('0' + sum);
}
// else between 10-35
else if (sum >=10 && sum <35)
{
result[i] = char ('A' +sum -10);
}
}
}
You must write overflow part in method add() at this code because it part is overflowing.
//calculate
sum = (temp_num1+temp_num2+carry1)% base;
//carry 2
carry2 = (temp_num1+temp_num2+carry1)/ base;
// check sum between 0-10
if (sum >= 0 && sum < 10)
{
result[i] = char('0' + sum);
}
// else between 10-35
else if (sum >=10 && sum <35)
{
result[i] = char ('A' +sum -10);
}
C++ problem where should I do overflow part? in this code do not write a new...
may i ask for help with this c++ problem? this is the code i have for assignment 4 question 2: #include<iostream> #include<string> #include<sstream> #include<stack> using namespace std; int main() { string inputStr; stack <int> numberStack; cout<<"Enter your expression::"; getline(cin,inputStr); int len=inputStr.length(); stringstream inputStream(inputStr); string word; int val,num1,num2; while (inputStream >> word) { //cout << word << endl; if(word[0] != '+'&& word[0] != '-' && word[0] != '*') { val=stoi(word); numberStack.push(val); // cout<<"Val:"<<val<<endl; } else if(word[0]=='+') { num1=numberStack.top(); numberStack.pop(); num2=numberStack.top(); numberStack.pop();...
#include <iostream> #include <conio.h> #include<limits> using namespace std; int main(){ char oparand, ch = 'Y'; int num1, num2, result; while(ch == 'Y'){ cout << "Enter first number: "; cin >> num1; while(1){//for handling invalid inputs if(cin.fail()){ cin.clear();//reseting the buffer cin.ignore(numeric_limits<streamsize>::max(),'\n');//empty the buffer cout<<"You have entered wrong input"<<endl; cout << "Enter first number: "; cin >> num1; } if(!cin.fail()) break; } cout << "Enter second number: "; cin >> num2; while(1){ if(cin.fail()){ cin.clear(); cin.ignore(numeric_limits<streamsize>::max(),'\n'); cout<<"You have entered wrong input"<<endl; cout <<...
Fix this code so only the function prototype comes before main. #include <iostream> using namespace std; bool isMultiple(int num1, int num2) { return num1 % num2 == 0; } int main() { char ch = 'Y'; int num1, num2; while(ch =='Y') // While ch is equal to Y { cout << "Enter two numbers(largest first): "; cin >> num1; // Getting 1st number cin >> num2; // Getting 2nd number if(isMultiple(num1, num2)) cout << num2 << " " << "IS...
This is a fill in the code type: // FILL IN THE CODE - Write a program to multiply 2 numbers, print out the results and print out the original numbers in ascending order. #include <iostream> using namespace std; int main() { int num1; // holds 1st number int num2; // holds 2nd number int result; // holds result of multiplication int *num1Ptr = nullptr; // int pointer which will be set to point to the 1st number int *num2Ptr...
SEE THE Q3 for actual question, The first Two are Q1 and Q2 answers . Q1 #include<iostream> using namespace std; // add function that add two numbers void add(){ int num1,num2; cout << "Enter two numbers "<< endl; cout << "First :"; cin >> num1; cout << "Second :"; cin >>num2; int result=num1+num2; cout << "The sum of " << num1 << " and "<< num2 <<" is = "<< result; ...
I need help fixing my code: In C++ *************** 1) I want to sum the digits of an n*n matrix 2) find the average I have completed the rest ****Do not use C++ standard library. You must use pointers and pointer arithmetic to represent the matrix and to navigate through it. MY CODE: (I have indicated at which point I need help) #include <iostream> using namespace std; void swap(int *xp, int *yp) { int temp = *xp; *xp = *yp;...
Write a psuedocode for this program. #include <iostream> using namespace std; string message; string mappedKey; void messageAndKey(){ string msg; cout << "Enter message: "; getline(cin, msg); cin.ignore(); //message to uppercase for(int i = 0; i < msg.length(); i++){ msg[i] = toupper(msg[i]); } string key; cout << "Enter key: "; getline(cin, key); cin.ignore(); //key to uppercase for(int i = 0; i < key.length(); i++){ key[i] = toupper(key[i]); } //mapping key to message string keyMap = ""; for (int i = 0,j...
I'm kind of new to programming, and I am having trouble figuring out why my program isn't running. Below is the code that I wrote for practice. I will comment where it says the error is. So the error that I'm getting is "error: no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' ". I'm not sure why I'm getting this because I added the library <iostream> at the top. Thank you. Code: #include <iostream> using namespace std; class...
Remove srand(time(NULL)); from this C++ code so that it still finds random numbers correctly. Then, Write a program that adds the following to the fixed code. • Add a function that will use the BubbleSort method to put the numbers in ascending order. – Send the function the array. – Send the function the size of the array. – The sorted array will be sent back through the parameter list, so the data type of the function will be void....
im writing a c++ code and getting stuck on two parts. The first part, when I go to write the customer order out to the file, it writes everything but the price out right. I'll get a weird number like 5.95828e-039 or nan. When I printout to the console it works fine so not sure what's wrong. Second After I write the order out to the file, I then have to go in and read the file and calculate the...