生日当天,小思收到了一个神秘的礼物——一颗小黄球。这颗小黄球有着一个梦想:它想要环游世界,奔赴星辰大海。但是小黄球自感脆弱无助,于是就告诉了小思,希望小思能够帮助它完成梦想。小思为它设计了一个3x3大小的九宫格沙盘,让它在里面自由练习滚动,期盼有朝一日小黄球能够规划出自己的征途,此时便是其启程告别之日。 沙盘外部由无限高的玻璃罩包裹,确保小黄球不会滚出沙盘。沙盘内部由9个可以自由升降的高台组成,每个高台有自己对应的编号(1,2,…9)和对应的高度(不一定是中间高四周低),相邻的高台之间由陡坡连接而成,小球可以在上面自由滚动。小球的每次模拟滚动满足以下规则:①初始起点为九宫格中心(⑤号位)。②小黄球会在四周可滚动方向高台中选择高度最小的一个进行滚动,且不具备爬升能力。③若四周可滚动方向高台中存在多个高台同为可选择中的最小值,则小黄球会犹豫不决,对前程感到迷茫,从而停止在原高台上。且小黄球不会滚向相同高度高台上。请你给出小黄球最终会停止在几号高台上。(对题目有疑惑可翻阅文档末)输入格式:一行不大于100的正整数,一共九个,代表高台①~⑨的高度,中间用空格隔开。输出格式:输出一个正整数,表示最终停留在的高台编号。输入样例1:3 6 8 5 11 7 4 8 3输出样例1:1输入样例2:4 6 8 5 11 7 4 8 3输出样例2:4需要提交的测试数据测试样本1:1 3 6 4 10 5 6 2 3测试样本2:5 1 5 2 5 3 5 4 5测试样本3:7 2 4 10 7 10 4 2 6测试样本4、5在代码上交后由评审测试。
小球从平台上按平台高低程度下落,C语言刚学,希望有一个详细一点的解释
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2022-10-21 21:04关注
就是在3*3矩阵中,从中心开始往四周找最低点,然后再找该最低点四周的最低点,直到没有低于该点的四周点,或者四周点中有多个最低点
int a[3][3]; int func(int *si,int *sj) { int i = *si; int j = *sj; int min = a[*si][*sj]; int mincount = 0; if(i>0 && a[i-1][j] <= min) { if(a[i-1][j] < min) { min = a[i-1][j]; *sj = j; *si = i-1; mincount = 1; } else mincount=2; } if(i<2 && a[i+1][j] <= min) { if(a[i+1][j] < min) { min = a[i+1][j]; *sj = j; *si = i+1; mincount = 1; } else mincount=2; } if(j>0 && a[i][j-1] <= min) { if(a[i][j-1] < min) { min = a[i][j-1]; *sj = j-1; *si = i; mincount = 1; } else mincount=2; } if(j<2 && a[i][j+1] <= min) { if(a[i][j+1] < min) { min = a[i][j+1]; *sj = j+1; *si = i; mincount = 1; } else mincount=2; } return mincount; } int main() { int i,j; int si=1,sj=1; for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); while(func(&si,&sj)==1); printf("%d\n",(si+1)*3+sj+1); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报 编辑记录