|
发表于 2012-12-23 20:24:20
|
显示全部楼层
- /*
- .实验要求
- 1.掌握指针和数组作为函数参数时的使用方法。
- 2.能熟练使用指针操作各种数据对象。
- 3.掌握指针法和下标法对于数组元素的操作。
-
- 实验内容接受用户输入的整数n,随机生成n个0~100间的整数,
- 使用动态数组存储所有元素,分别统计0~59,60~84,85~100之间的元素个数
- */
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct MyData{
- int* pInts;
- int n;
- int count0_59;
- int count60_84;
- int count85_100;
- }MyData;
- void Init( MyData* pMyData );
- void Deal( MyData* pMyData );
- void Print( MyData* pMyData );
- void Destroy( MyData* pMyData );
- void Init( MyData* pMyData ) {
- puts("Input n:");
- scanf( "%d", &(pMyData->n) );
- if( pMyData->n>0 ) {
- pMyData -> pInts = (int*) malloc( pMyData->n * sizeof(int) );
- pMyData -> count0_59 = 0;
- pMyData -> count60_84 = 0;
- pMyData -> count85_100 = 0;
- }
- }
- void Deal( MyData* pMyData ) {
- int i;
- srand( time(NULL) );
- for( i=0; i<pMyData->n; ++i ) {
- int temp = rand()%101;
- pMyData->pInts[i] = temp;
- if( 0<=temp && temp<=59 ) pMyData->count0_59++;
- else if( 60<=temp && temp<=84 ) pMyData->count60_84++;
- else if( 85<=temp && temp<=100 ) pMyData->count85_100++;
- }
- }
- void Print( MyData* pMyData ) {
- int i = 0;
- printf("0~59:%d\n", pMyData->count0_59 );
- printf("60~84:%d\n", pMyData->count60_84 );
- printf("85~100:%d\n", pMyData->count85_100 );
- puts("all data is:");
- for(; i<pMyData->n;++i){
- printf("%d\n", pMyData->pInts[i]);
- }
- }
- void Destroy( MyData* pMyData ) {
- if( pMyData->n > 0 ) {
- free( pMyData->pInts );
- }
- }
- int main(){
- MyData my_data;
- Init(&my_data);
- Deal(&my_data);
- Print(&my_data);
- Destroy(&my_data);
- return 0;
- }
复制代码 |
|