Skip to content

Instantly share code, notes, and snippets.

@johnhmj
Created December 4, 2010 11:11
Show Gist options
  • Save johnhmj/728113 to your computer and use it in GitHub Desktop.
Save johnhmj/728113 to your computer and use it in GitHub Desktop.
// 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