2015-02-10 78 views
-2
//*********************************************************** 

#include <iostream> 
#include <iomanip> 
#include <cstdlib> 

// function prototypes 
void intOutput(); 
void floatingPointOutput(); 
void intMathOperations(int rows, int b, int width); // int math demonstration 
void writeHeaderLine(int width); 
void writeMathLine(int a, int b, int width); 

using namespace std; 

int main() 
{ 
int a, b, width, rows; 

cout << "\nProject 1: Math and Functions"; 
cout << "\n"; 
cout << "\n"; 
cout << "\nProject 1 Start."; 
cout << "\nZack Cunningham"; 
cout << "\n"; 
cout << "\nInteger Output Demo:"; 
cout << "\n"; 

intOutput(); 
floatingPointOutput(); 
intMathOperations(rows, b, width); // int math demonstration 
writeHeaderLine(width); 
writeMathLine(a, b, width); 

cout << "\n"; 
cout << "\nProject 1 End."; 
cout << "\n"; 

const int FIELD_WIDTH = 10; 
intMathOperations(12, 5, FIELD_WIDTH); 

return EXIT_SUCCESS; 
} 

void intMathOperations(int rows, int b, int width){ 
cout << "\n"; 
cout << "\nInteger Math Operations Demo:"; 
cout << "\n"; 
writeHeaderLine(width); 
cout << "\n"; 
for (int a = 0; a < rows; ++a){writeMathLine(a, b, width); 
} 
} 


void writeHeaderLine(int width){ 
cout << "\n"; 
cout << setw(width) << "a"; 
cout << setw(width) << "b"; 
cout << setw(width) << "a * b"; 
cout << setw(width) << "a/b"; 
cout << setw(width)<< "a % b"; 
} 

void writeMathLine(int a, int b, int width){ 
cout << setw(width) << a; 
int rows; 
for (int a = 0; a < rows; ++a){writeMathLine(a, b, width); 
} 
} 

void floatingPointOutput(){ 
double a = 2000; 
double b = 3; 
double c = a/b; 
cout << "\n" << a << "/" << b << " = "; 
cout << "\n" << c; 

cout << setprecision(10); 
cout << "\n" << setw(20) << c; 
cout << scientific; // scientific notation 
cout << "\n" << setw(20) << c; 
cout << fixed; // standard decimal notation 
cout << "\n" << setw(20)<< c; 
cout << left; // left justify 
cout << "\n" << setw(20) << c; 
cout << right; 

// right justify (default) 
cout << "\n" << setw(20) << c; 
cout << setprecision(6); // return to default 
cout << "\n" << setw(20) << c; 
cout << "\n"; 
} 

// function calls 
void intOutput(){ 
cout << "\nInteger Output Demo:"; 
cout << "\n"; 
int a = 12; 
int b = 12345678; 
cout << "\n....5...10...15...20"; // spacing info 
cout << "\n"; 
cout << "\n" << setw(20) << a; 
cout << "\n" << setw(20) << b; 
cout << "\n"; 
cout << "\n" << setw(4) << a; 
cout << "\n" << setw(4) << b; 
cout << left; // left justified 
cout << "\n"; 
cout << "\n" << setw(20) << a; 
cout << "\n" << setw(20) << b; 
cout << right; // right (default) justified 
cout << "\n"; 
} 

这是我所有的程序代码,而且我已经完成了它的工作。最后没有错误,但它是一个空白的程序,只是在无限循环中运行。我不确定该怎么做,如果有人能帮忙,我会很感激。谢谢。程序运行时出现空白窗口?

+2

欢迎来到StackOverflow!我建议在发布之前尽可能简化您的程序,并确保您的缩进是正确的。你也应该澄清你是一个空白程序的意思。你真的认为它不输出任何东西,包括“项目1:数学和函数”? – 2015-02-10 20:46:01

+0

请仅包含与您的问题相关的代码,没有人真的想要通读您的整个程序 – 2015-02-10 20:46:16

+1

您可能想要提高编译器的警告级别,并注意未初始化的变量警告。 – 2015-02-10 20:46:21

回答

2

至少你需要解决这个问题。您定义的变量rows

int a, b, width, rows; 

但是你没有初始化rows,你用它在这里,

intMathOperations(rows, b, width); // int math demonstration 

其在for循环的结束条件使用rows。这是个问题。

为了解决这个问题,我建议你打开所有的警告这样

g++ -Wall your_code.cpp 

并确保你了解每一个警告你并修复必要的。

+0

他没有初始化'b'和'width',他只创建局部变量 – Machtl 2015-02-10 20:54:04

+0

这是其中之一编译器能够指出的很多问题。 – 2015-02-10 20:55:37

+0

是的,你是对的,还有几个变量需要初始化。 – 2015-02-10 20:55:52