//第一题
//golf.h
const int Len = 40;
struct golf{
char fullname[Len];
int handicap;
};
void setgolf(golf &g, const char *name, int hc);
int setgolf(golf &g);
void handicap(golf &g, int hc);
void showgolf(const golf &g);
//golf.cpp
#include <iostream>
#include <cstring>
#include "golf.h"
void setgolf(golf &g, const char *name, int hc)
{
strcpy(g.fullname, name);
g.handicap = hc;
}
int setgolf(golf &g)
{
std::cin.getline(g.fullname, Len);
std::cin >> g.handicap;
return g.fullname == NULL ? 0 : 1;
}
void handicap(golf &g, int hc)
{
g.handicap = hc;
}
void showgolf(const golf &g)
{
std::cout << g.fullname << std::endl << g.handicap << std::endl;
}
//main.cpp
#include <iostream>
#include "golf.h"
int main()
{
golf g;
setgolf(g);
showgolf(g);
setgolf(g, "Tree", 6666);
showgolf(g);
handicap(g, 2333);
showgolf(g);
return 0;
}
//第二题
#include <iostream>
#include <string>
void strcount(const std::string &s);
int main()
{
std::string s;
while(getline(std::cin, s))
strcount(s);
return 0;
}
void strcount(const std::string &s)
{
static int total = 0;
int len = 0;
for(int i = 0 ; i < (int)s.length() ; ++i)
len += s[i] == ' ' ? 0 : 1;
std::cout << len << std::endl;
total += len;
std::cout << "Total: " << total << std::endl;
}
//第三题
#include <iostream>
struct chaff{
char dross[20];
int slag;
};
const int LEN = 512;
char Buffer[LEN];
int main()
{
chaff *p = new (Buffer) chaff[2];
for(int i = 0 ; i < 2 ; ++i)
{
std::cin.getline(p[i].dross, 20);
std::cin >> p[i].slag; std::cin.get(); //吸收'\n'
}
for(int i = 0 ; i < 2 ; ++i)
std::cout << "#" << i + 1 << std::endl << p[i].dross << std::endl << p[i].slag << std::endl;
return 0;
}
//第四题
//sale.h
namespace SALES
{
const int QUARTERS = 4;
struct Sales
{
double sales[QUARTERS];
double average;
double max;
double min;
};
void setSales(Sales &s, const double ar[], int n);
void setSales(Sales &s);
void showSales(const Sales &s);
}
//sale.cpp
#include <iostream>
#include "sale.h"
namespace SALES
{
void setSales(Sales &s, const double ar[], int n)
{
double max = -1, min = 999999, average = 0;
if(n < 4)
{
for(int i = 0 ; i < 4 ; ++i)
{
if(i < n)
{
s.sales[i] = ar[i];
max = max < s.sales[i] ? s.sales[i] : max;
min = min > s.sales[i] ? s.sales[i] : min;
average += s.sales[i];
}
else
s.sales[i] = 0;
}
s.max = max;
s.min = min;
s.average = average / n;
}
else
{
for(int i = 0 ; i < 4 ; ++i)
{
s.sales[i] = ar[i];
max = max < s.sales[i] ? s.sales[i] : max;
min = min > s.sales[i] ? s.sales[i] : min;
average += s.sales[i];
}
s.max = max;
s.min = min;
s.average = average / 4;
}
}
void setSales(Sales &s)
{
double max = -1, min = 999999, average = 0;
for(int i = 0 ; i < 4 ; ++i)
{
std::cin >> s.sales[i];
max = max < s.sales[i] ? s.sales[i] : max;
min = min > s.sales[i] ? s.sales[i] : min;
average += s.sales[i];
}
s.max = max;
s.min = min;
s.average = average / 4;
}
void showSales(const Sales &s)
{
for(int i = 0 ; i < 4 ; ++i)
std::cout << s.sales[i] << std:: endl;
std::cout << "MAX: " << s.max << std::endl << "MIN: " << s.min << std:: endl << "AVE: " << s.average << std::endl;
}
}
//main.cpp
#include "sale.h"
int main()
{
double a[3] = {1.1, 2.2, 3.3};
SALES::Sales s;
SALES::setSales(s, a, 3);
SALES::showSales(s);
SALES::setSales(s);
SALES::showSales(s);
return 0;
}