骑车与走路

来源:互联网 发布:java list.sort 降序 编辑:程序博客网 时间:2024/04/19 12:44

问题描述:

在北大校园里,没有自行车,上课办事很不方便,但实际上,并非去办任何事情都是骑车快,因为骑车总是要找车,开锁,停车,锁车,这要耽误一些时间;假设找到自行车的时间27秒,停车锁车的时间为23秒;步行每秒1.2米,骑车每秒3.0米,请判断坐不同的距离去办事,是骑车快还是走路快。

关于输入:

第一行为待处理的数据的数量n

其后每一行整数为一次办事要行走的距离,单位为m;

关于输出:

对应每个整数,如果骑车快,输出一行“bike ”;如果走路快,输出一行“walk”,一样快输出“all”;

例子输入:

4

50

90

120

180

输出:

walk

walk

bike

bike

分析:此题是典型的未知数组的元素个数,很容易想到动态数组;对于本题,在被调函数中实现输出。

使用动态数组应注意几点:

1:头文件 #include<malloc.h>

2:使用指针,自己申请内存。

3:malloc函数返回一个void*类型的地址,必须通过强制类型转换,才能赋值给特定的指针变量

4:分配的内存不再使用时一定要释放

代码:

#include<stdio.h>#include<malloc.h>void compute(int distance);int main(){    int n;    int i;    scanf("%d",&n);    int  *distance=(int *)malloc(sizeof(int)*n);    for(i=0;i<n;i++)    {    scanf("%d",&(distance[i]));                    }    for(i=0;i<n;i++)    compute(distance[i]);    free(distance);        //!!!return 0;    }void compute(int distance){     int timebike=27+23+distance/3;     int timewalk=(int)(distance/1.2);     if(timebike<timewalk)     printf("bike\n");     else if(timebike>timewalk)     printf("walk\n");     else printf("all\n");     }


 

 

 

 

0 0
原创粉丝点击