run this, then re-run it at the end, there is a problem with the gotoxy



#include <iostream>
#include <string>
#include <windows.h>
using namespace std;

void gotoxy(int x, int y);
void clrscr(int x, int y);

void input();
void average_rain(float rainFall[], int size);
void min_rain(float rainFall[], string months[]);
void max_rain(float rainFall[], string months[]);

int monthnum = 12;
int column = 32;
int row = 4;
string again = "y";

float total = 0;

int main()
{

do
{
clrscr(32,4);
float rainFall[12];
gotoxy(8,2);
cout << "Months";
gotoxy(32,2);
cout << "Rainfall";
string months[12] = { "January","Febuary","March","April","May","June","July","August","September","October", "November","December"};

for (int i = 0; i < 12; i++)
{
cout <<"\n\n\t"<< months[i] << ": ";
}


average_rain(rainFall, 12);
min_rain(rainFall, months);
max_rain(rainFall, months);
cout << "Enter y or n: ";
cin >> again;



}

while(again == "y");

cin.ignore();
cin.get();
}





void min_rain(float rainFall[], string months[])
{
float minimumRain = rainFall[0];

for(int g = 0; g < 12; g++)
{
if(rainFall[g] < minimumRain)
{
minimumRain = rainFall[g];
}
}

cout << "\n\tMinumum: ";
for(int f = 0; f < 12; f++)
{

if(rainFall[f] == minimumRain)


{
cout << months[f] << "\n\t\t ";
}
}
cout <<"Amount is " << minimumRain << "\n";
}

void max_rain(float rainFall[], string months[])
{
float maximumRain = rainFall[0];

for(int b = 0; b < 12; b++)
{
if(rainFall[b] > maximumRain)
{
maximumRain = rainFall[b];
}
}

cout << "\n\tMaximum: ";
for(int f = 0; f < 12; f++)
{

if(rainFall[f] == maximumRain)


{
cout << months[f] << "\n\t\t ";
}
}
cout <<"Amount is " << maximumRain;
}

void average_rain(float rainFall[], int size)
{
for(int c = 0; c < 12; c++)
{
gotoxy(32,4);
gotoxy(column, row);
cin >> rainFall[c];
row+=2;

total = total + rainFall[c];
}

float average = total / monthnum;
cout << "\n\n\tAverage: " << average << "\n" ;
}

void gotoxy(int x, int y)
{
COORD coord;
coord.X = x; //column coordinate
coord.Y = y; //row coordinate
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}

void clrscr(int x, int y)
{
COORD coordScreen = { x, y };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole, TEXT(' '),
dwConSize, coordScreen, &cCharsWritten);
GetConsoleScreenBufferInfo(hConsole, &csbi);
FillConsoleOutputAttribute(hConsole, csbi.wAttributes,
dwConSize, coordScreen, &cCharsWritten);
SetConsoleCursorPosition(hConsole, coordScreen);
}
Topic archived. No new replies allowed.