用一个go_up函数表示向上爬,用go_down函数表示向下滑,直至到达树顶结点 */
#include <stdio.h>
#include <alloc.h>
/* 定义双向链表 */
typedef node linknode
typedef struct node {
int position
int counter
linknode *prev
linknode *next
} link
/* 定义头、尾、当前指针 */
link *head, *rear, *now
/* 保存m和n值 */
int m, n
/* 爬的函数 */
void go_up()
{
int i
link *p
p = now /* 从当前位置开始爬 */
i = 0
while ( i <n &&p != rear ) { /* 爬n米或者爬到最顶 */
p = p->next/* 向上爬1米 */
p->counter++/* 本结点计数加一 */
printf("%d,", p->position)/* 输出途经本结卖闹点的过程 */
}
now = p/* 当前位置改变了 */
}
/* 向下滑 */
void go_down()
{
int i
link *p
p = now/* 当前位置开始下滑 */
i = 0
while( i <m ) { /* 下滑m米 */
p=p->prev/* 向下滑1米 */
p->counter++/* 计数加1 */
printf("%d,", p->position)/* 输出途经结点 */
}
now = p/* 爬完后当前位置改变 */
}
void main()
{
int i, h
link *p, *q
/* 输入参数 */
printf("Input h:")
scanf("%d", &h)
printf("Input m:"
scanf("%d", &m)
printf("Input n:"中团罩
scanf("%d", &n)
/* 检查参数合法性 */
if( h <n || n <m || h <= 0 || n <= 0 || m <=0 ){
printf("Error args!")
exit(-1)
}
/* 初始化链表 */
head = malloc(sizeof(link))/* 头指针 */
/* 各个结点或闹,h米高应该有h+1个结点 */
q = head/* 保存上一个结点,用于构造双向链表 */
for( i = 0i <h+1i++ ) {
p = malloc(sizeof(link))
p->position = i/* 标尺 */
p->counter = 0/* 初始计数为零 */
q->next = p /* 前驱和后继 */
if( q == head ) p->prev = NULL
else p->prev = q
p->next = NULL
q = p
}
rear = q/* 尾指针 */
/* 爬树过程 */
now = head->next/* 从第一个结点开始爬 */
printf(" Starting from %d:", now->position)
while( now != rear ) { /* 直到爬到树顶 */
go_up()/* 爬上n米 */
if( now != rear ) go_down()/* 如果没到顶,爬下m米 */
}
/* 输出经过次数 */
p = head->next
while( p != rear ) {
printf("Position: %d, counter: %d\n", p->position, p->counter)
p = p->next
free( p->prev )/* 删除已经输出的结点释放内存 */
}
free(head)
free(rear)
}
白天爬3米,晚上源闹掉下亏源2米,实际一天只爬了1米。具体代码如下:
public class Demo4 {public static void main(String[] args) {
int distance = 0 // 所爬的路程
int days = 0 // 所用天数
while (distance < 30) {
distance += 3 // 白天爬3米
distance -= 2 // 雹空罩晚上滑下2米
days++
}
System.out.println("爬出井用了" + days + "天")
}
}
(98-10)/(10-7.8)+1因为就是最后一天爬上去后就氏老不会掉下来了,你的式子的意思是它一直子上去掉下来,你画个图就知道了,他最后上去后就不掉下来了,而且咐橡就算掉下来,再爬上衡核旁去不可能腾空阿
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)