Created
December 4, 2010 11:11
-
-
Save johnhmj/728113 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Integrated Development Environment | |
// Visual C++ | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <memory.h> | |
// 總數量 | |
#define CARSIZE 5 | |
// 一輛車 | |
typedef struct SMyCar | |
{ | |
// 車速 | |
unsigned int m_speed; | |
// 超速:1;未超速:0 | |
unsigned int m_OvrSpd; | |
}MyCar; | |
// 很多車 | |
typedef struct SCars | |
{ | |
MyCar m_cars[CARSIZE]; | |
// 總數量 | |
unsigned int m_Size; | |
// 未超速與超速車的數量 | |
unsigned int m_GdSpd; | |
unsigned int m_OvrSpd; | |
// 平均時速 | |
double m_AvgSpd; | |
double m_AvgGdSpd; | |
double m_AvgOvrSpd; | |
}Cars; | |
void InitCars(Cars* cars); | |
void CopRadar(Cars* cars); | |
// | |
int main(int argc, char* argv[]) | |
{ | |
Cars crs; | |
unsigned int i = 0; | |
InitCars(&crs); | |
for (; i < (crs.m_Size); i ++) | |
{ | |
printf("Input no.%d car\'s speed: ", (i + 1)); | |
scanf("%u", &(crs.m_cars[i].m_speed)); | |
} | |
CopRadar(&crs); | |
for (i = 0; i < (crs.m_Size); i ++) | |
{ | |
printf("No.%d car = %u KmPS ", (i + 1), crs.m_cars[i].m_speed); | |
printf("%s\n", ((crs.m_cars[i].m_OvrSpd == 1)?"Speeding":"non-Speeding")); | |
} | |
printf("2. Speeding cars = %u\n", crs.m_OvrSpd); | |
printf("3. Average Speed = %lf\n", crs.m_AvgSpd); | |
printf("4. Speeding Average Speed = %lf\n", crs.m_AvgOvrSpd); | |
printf("5. non-Speeding Average Speed = %lf\n", crs.m_AvgGdSpd); | |
system("PAUSE"); | |
return (0); | |
} | |
void InitCars(Cars* cars) | |
{ | |
memset(cars, 0, sizeof(Cars)); | |
cars->m_Size = CARSIZE; | |
// | |
// 以下是第二種方法 | |
//unsigned int i = 0; | |
//cars->m_Size = CARSIZE; | |
//for (; i < (cars->m_Size); i ++) | |
//{ | |
// cars->m_cars[i].m_speed = 0; | |
// cars->m_cars[i].m_OvrSpd = 0; | |
//} | |
//cars->m_GdSpd = 0; | |
//cars->m_OvrSpd = 0; | |
//cars->m_AvgSpd = 0.0; | |
//cars->m_AvgGdSpd = 0.0; | |
//cars->m_AvgOvrSpd = 0.0; | |
} | |
void CopRadar(Cars* cars) | |
{ | |
unsigned int i = 0; | |
for (; i < (cars->m_Size); i ++) | |
{ | |
// 未超速 | |
if ( cars->m_cars[i].m_speed < 110 ) | |
{ | |
cars->m_cars[i].m_OvrSpd = 0; | |
cars->m_GdSpd ++; | |
cars->m_AvgGdSpd += 1.0 * (cars->m_cars[i].m_speed); | |
} | |
// 超速 | |
else | |
{ | |
cars->m_cars[i].m_OvrSpd = 1; | |
cars->m_OvrSpd ++; | |
cars->m_AvgOvrSpd += 1.0 * (cars->m_cars[i].m_speed); | |
} | |
} | |
// 取平均 | |
cars->m_AvgSpd = cars->m_AvgGdSpd + cars->m_AvgOvrSpd; | |
cars->m_AvgSpd /= cars->m_Size; | |
cars->m_AvgGdSpd /= cars->m_GdSpd; | |
cars->m_AvgOvrSpd /= cars->m_OvrSpd; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment