当前位置:千优问>百科知识>C来自语言课后题,找出一个二360问答维数组中的鞍点

C来自语言课后题,找出一个二360问答维数组中的鞍点

2023-03-26 23:23:36 编辑:leo 浏览量:598

C来自语言课后题,找出一个二360问答维数组中的鞍点

问题补充说明:找出一个二维数组中的鞍点,即该位置上的元素在该行上最大、在该列上最小。也可能没有鞍点。给出的答案是:#include#define N 4#define M 5void main(){ int i,j,k,a[N][M],max,maxj,flag; printf("输入数组:\n"); for(i=0;imax) { max=a[i][j]; //*将本行的最大数保存在max中 maxj=j; //*将最大数所在的列号保存在maxj中 } flag=1; //*先假设是鞍点,用flag为1代表 for(k=0;ka[k][maxj]) //*将最大数和其同列元素相比 { flag=0; //*如果max不是同列最小,表示不是鞍点,令flag=0 continue; } if(flag) //*如果flag为1表示是鞍点 { printf("a[%d][%d]=%d\n",i,maxj,max); //*输出鞍点值和所在行号列号 break; } } if(!flag) //*如果flag为0表示鞍点不存在 printf("鞍数不存在!");}我想知道倒数第11行的continue起什么作用?我怎么感觉不加也可以?去掉continue,用下面两个数组测试结果没有影响1 2 3 4 52 4 6 8 103 6 9 12 154 8 12 16 201 12 3 4 52 4 16 8 103 6 9 12 154 8 12 16 20求高手解答,万谢!这里的continue我理解是跳到for(k=0;k

C来自语言课后题,找出一个二360问答维数组中的鞍点

continue可以跳过后面的if语句,不但是为了省时间,而且还有防止出错的功能。

相信continue的作用你也懂,切换到循环顶部。

例如:

#include<c最刚存艺机决走械数队吃stdio>#include<cstdlib>#include<iostream>using namespace std;int main(){    int n,c=0;        cin>>n;        while(n>1)    {        n=(n%2)?n*3+1:n/2;        c+及乱沉升处新+;        continue;    }    sy江难告门不海stem("pause");    return 0;}

其中continue起的是跳至while(n>1统当乡望组贵多素)这一句的作用。相信你会懂。不过跟上面的人说的一样,省时间是第一步,更重要是减少运算,减少出错的概率。你懂,运算越多美立面混你汉派区,出错概率越大。

标签:课后,鞍点