C++;数字操纵器编程器 我是C++初学者和函数初学者, 收到错误“linker command failed with exit code 1”(链接器命令失败,退出代码为1),不知道有没有人能给我一些关于如何解决此问题以及我的整个代码组织的见解。非常感谢您在这件事上的时间和意见:)
忽略下面的陈述 (由于空间不足,我不得不删除包含以下iostream、iomanip、string和cmath的#include语句)C++;数字操纵器编程器 我是C++初学者和函数初学者, 收到错误“linker command failed with exit code 1”(链接器命令失败,退出代码为1),不知道有没有人能给我一些关于如何解决此问题以及我的整个代码组织的见解。非常感谢您在这件事上的时间和意见:),c++,function,runtime-error,C++,Function,Runtime Error,忽略下面的陈述 (由于空间不足,我不得不删除包含以下iostream、iomanip、string和cmath的#include语句) #包括 #包括 #包括 #包括 空标题(); 双数(); int菜单(); void see menu(); void processChoice(); void negPos(); int平方根(); 空偶数(); 无效数字(); void digitAtPos(); 使用名称空间std; int main() { int-choice=0; 标题(); 数字
#包括
#包括
#包括
#包括
空标题();
双数();
int菜单();
void see menu();
void processChoice();
void negPos();
int平方根();
空偶数();
无效数字();
void digitAtPos();
使用名称空间std;
int main()
{
int-choice=0;
标题();
数字();
菜单();
参见菜单();
processChoice();
while(选项!=0){
processChoice();}
返回0;
}
空标题(){
cout在快速查看代码时,我注意到函数processMenuChoice被声明为void processMenuChoice()
,但它被定义为void processMenuChoice(int-choice)
。由于函数需要该参数,您需要将While循环更改为
processMenuChoice(choice);
while(choice != 0)
{
processMenuChoice(choice);
}
以下是使代码正常工作的修复方法。请注意,还有一些其他问题需要修复
提示:在void squareRoot(int num)
中,结果是一个整数
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
void displayHeader();
double getNumber();
int showMenu();
void menu();
void processMenuChoice(int choice, int num);
void isPosNeg(int num);
void squareRoot(int num);
void isOddEven(int num);
void findNumDigits(int num);
void findDigitAtPosition(int num);
using namespace std;
int main()
{
int choice = 0;
displayHeader();
int num = getNumber();
menu();
choice = showMenu();
while (choice != 0) {
processMenuChoice(choice, num);
choice = showMenu();
}
return 0;
}
void displayHeader(){
cout << "Number Manipulator\n"; }
double getNumber() {
double num;
cout << "Enter a number to continue: ";
cin >> num;
return num; }
void menu(){
cout << "\nHere are your choices:";
cout << endl << setw(29) << "1) Is it even or odd?";
cout << endl << setw(38) << "2) Is it positive or negative?";
cout << endl << setw(49) << "3) What is the square root?";
cout << endl << setw(41) << "4) How many digits in the number?";
cout << endl << setw(54) << "5) What is the digit at a particular location?";
cout << endl << setw(19) << "0) To Quit.";
}
int showMenu() {
int choice;
cout << "\n\nEnter your choice: ";
cin >> choice;
return choice; }
void processMenuChoice(int choice, int num) {
switch (choice) {
case 1: isPosNeg(num);
break;
case 2: isOddEven(num);
break;
case 3: squareRoot(num);
break;
case 4: findNumDigits(num);
break;
case 5: findDigitAtPosition(num);
break;
default:
cout << "This is not a valid choice. Please try again!";
showMenu();
break; }}
void isPosNeg(int num) {
if (num > 0) cout << "Number is Positive\n";
if (num < 0) cout << "Number is Negative\n";
if (num == 0) cout << "Number is Zero\n"; }
void isOddEven(int num) {
if (num%2 == 0) cout << "Number is even";
else cout << "Number is odd"; }
void squareRoot(int num) {
int numSqrt;
numSqrt=sqrt(num);
cout << "Square root of " << num << " is " << numSqrt; }
void findNumDigits(int num) {
int numDigits=0;
do {
num /= 10;
numDigits++;
} while(num);
cout << "The number of digits in " << num << " is " << numDigits; }
void findDigitAtPosition(int num) {
int pos;
cout << "What Position?: ";
cin >> pos; }
//need to be completed
#包括
#包括
#包括
#包括
void displayHeader();
双getNumber();
int showMenu();
无效菜单();
void processMenuChoice(int-choice,int-num);
void isPosNeg(int num);
空隙平方根(整数);
void isOddEven(int num);
无效findNumDigits(int num);
void findDigitAtPosition(int num);
使用名称空间std;
int main()
{
int-choice=0;
displayHeader();
int num=getNumber();
菜单();
choice=showMenu();
while(选项!=0){
processMenuChoice(选项,num);
choice=showMenu();
}
返回0;
}
void displayHeader(){
库特数;
返回num;}
无效菜单(){
coutgetNumber
似乎是在displayHeader
中定义的。您为什么决定从问题中删除代码?我有个坏消息要告诉您:P说的是您。请参阅第二个链接,了解如何从帖子中删除您的姓名。仅从问题中删除代码被视为故意破坏,通常会回滚。@mjargaille请举例说明特定位置的含义?您需要输入位置。例如,数字为6789,选项为5。但没有位置指示位置编号。
#include <iostream>
#include <iomanip>
#include <string>
#include <cmath>
void displayHeader();
double getNumber();
int showMenu();
void menu();
void processMenuChoice(int choice, int num);
void isPosNeg(int num);
void squareRoot(int num);
void isOddEven(int num);
void findNumDigits(int num);
void findDigitAtPosition(int num);
using namespace std;
int main()
{
int choice = 0;
displayHeader();
int num = getNumber();
menu();
choice = showMenu();
while (choice != 0) {
processMenuChoice(choice, num);
choice = showMenu();
}
return 0;
}
void displayHeader(){
cout << "Number Manipulator\n"; }
double getNumber() {
double num;
cout << "Enter a number to continue: ";
cin >> num;
return num; }
void menu(){
cout << "\nHere are your choices:";
cout << endl << setw(29) << "1) Is it even or odd?";
cout << endl << setw(38) << "2) Is it positive or negative?";
cout << endl << setw(49) << "3) What is the square root?";
cout << endl << setw(41) << "4) How many digits in the number?";
cout << endl << setw(54) << "5) What is the digit at a particular location?";
cout << endl << setw(19) << "0) To Quit.";
}
int showMenu() {
int choice;
cout << "\n\nEnter your choice: ";
cin >> choice;
return choice; }
void processMenuChoice(int choice, int num) {
switch (choice) {
case 1: isPosNeg(num);
break;
case 2: isOddEven(num);
break;
case 3: squareRoot(num);
break;
case 4: findNumDigits(num);
break;
case 5: findDigitAtPosition(num);
break;
default:
cout << "This is not a valid choice. Please try again!";
showMenu();
break; }}
void isPosNeg(int num) {
if (num > 0) cout << "Number is Positive\n";
if (num < 0) cout << "Number is Negative\n";
if (num == 0) cout << "Number is Zero\n"; }
void isOddEven(int num) {
if (num%2 == 0) cout << "Number is even";
else cout << "Number is odd"; }
void squareRoot(int num) {
int numSqrt;
numSqrt=sqrt(num);
cout << "Square root of " << num << " is " << numSqrt; }
void findNumDigits(int num) {
int numDigits=0;
do {
num /= 10;
numDigits++;
} while(num);
cout << "The number of digits in " << num << " is " << numDigits; }
void findDigitAtPosition(int num) {
int pos;
cout << "What Position?: ";
cin >> pos; }
//need to be completed