2015-02-10 4 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: Математика и функции»? –

+0

Пожалуйста, укажите только код, относящийся к вашему вопросу, и никто не хочет читать всю вашу программу. –

+1

Возможно, вы захотите увеличить уровень предупреждения компилятора и обратить внимание на неинициализированные предупреждения переменных. –

ответ

2

По крайней мере, вам необходимо исправить это. Вы определили переменную rows в

int a, b, width, rows; 

Но вы не инициализировать rows и вы использовали его здесь,

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

, который использовал rows в цикле for как окончание состояния. Это проблема.

Чтобы исправить это, я хотел бы предложить вам включить все предупреждения, как этот

g++ -Wall your_code.cpp 

И убедитесь, что вы понимаете каждое предупреждение у вас есть и исправить необходимые.

+0

Он также не инициализировал 'b' и' width', он создал только локальные переменные – Machtl

+0

Это один из очень много проблем, которые компилятор способен указать. –

+0

Да, вы правы, нужно еще несколько переменных инициализировать. –

Смежные вопросы