『壹』 c語言中關於二維數組的「鞍點」問題
#include <stdio.h>
int main()
{
int a[3][3]={7,8,9,4,5,6,1,2,3};
int b[10];
int i,j,hmax,lmin,*p_hmax,*p_lmin;
p_hmax=&hmax;
p_lmin=&lmin; /*i行 j列 hmax行最大 lmin列最小*/
for(i=0;i<=2;i++) /*求出每行的最大數*/
{
hmax=a[i][0];
for(j=0;j<=2;j++)
{
if(hmax<a[i][j])
{
hmax=a[i][j];
}
}
b[i]=*p_hmax;
}
for(j=0;j<=2;j++) /*求出每列的最小數*/
{
lmin=a[0][j];
for(i=0;i<=2;i++)
{
if(lmin>a[i][j])
{
lmin=a[i][j];
}
}
b[j+3]=*p_lmin;
}
for(i=0;i<=2;i++) /*判斷每行的最大數和每列的最小數是否相等*/
if(b[i]==b[i+3])
printf("%d\n",b[i]);
else
printf("沒有鞍點\n");
return 0;
}
你試試吧!!我在vs上調試的
『貳』 c語言,鞍點
單步跟蹤看看吧。
『叄』 C語言編程題,找鞍點
#include<stdio.h>
int main()
{
int a[4][4]={{2,3,9,5},{6,7,8,3},{0,5,7,5},{2,1,8,3}};
int i,j,k,i0,j0,find=0;
printf("數組a: ");
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
printf("%3d",a[i][j]);
printf(" ");
}
for(i=0;i<4;i++)//窮舉所有的行
{
j0=0;
for(j=1;j<4;j++)
if(a[i][j]>a[i][j0])j0=j;//找到第i行上最大的數a[i][j0]
k=1;
for(i0=0;i0<4;i0++)//對找到的該數窮舉所有行
if(a[i0][j0]<a[i][j0])k=0;//如它不是本列上最小的數就「一票否決」
if(k)//若確認是,就輸出,並記錄已找到
{
printf("鞍點是:a[%d][%d]=%d ",i,j0,a[i][j0]);
find=1;
}
}
if(!find)//若未找到,則輸出提示信息
printf("此數組無鞍點! ");
return 0;
}
『肆』 c語言 求二維數組的鞍點
#include<stdio.h>
#define N 3
#define M 4
int main()
{
int i,j,k,max,min;
int array[N][M];
printf("請輸入數組元素: ");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
scanf("%d",&array<i>[j]);
}
printf("數組有: ");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
printf("%-5d ",array<i>[j]);
printf(" ");
}
for(i=0;i<N;i++)
{
max=array<i>[0];//用列來進行當前行來比較
for(j=0;j<M;j++)
{
if(max<array<i>[j])
max=array<i>[j];
k=j;//記錄下當前一行中最大的小標
}
min=array[0][k];
for(j=0;j<N;j++)//用行來進行列比較
{
if(min>array<i>[k])//若在該列中有更小的,則賦值與min
min=array<i>[k];
}
if(min==max)
{
printf("小標為%d,%d,鞍點為:%d",i+1,k,max);
}
}
printf("搜索結束 ");
return;
}
(4)c語言里鞍點是什麼擴展閱讀:
define作用
被定義為「宏」的標識符稱為「宏名」。在編譯預處理時,對程序中所有出現的「宏名」,都用宏定義中的字元串去代換,這稱為「宏代換」或「宏展開」。宏定義是由源程序中的宏定義命令完成的。宏代換是由預處理程序自動完成的。
宏定義的作用范圍僅限於當前文件,即file1.c中定義#define PI 3.14,在file2.c中該宏定義不起作用;
通過將#define PI 3.14定義在common.h中,file1.c和file2.c分別#include"common.h"的方式,該宏定義在file1.c和file2.c中都起作用。
在C或C++語言中,「宏」分為有參數和無參數兩種。
『伍』 關於C語言鞍點的問題。。。急求,謝謝啦!!!
應該是不存在
『陸』 (c語言)本人菜鳥,不清楚鞍點定義。所以大家看看這個二維數組中有么有鞍點
你是菜鳥,一提的問題可很雷人啊,不是一般的程序員能答得上來的哦。鞍點一般是指在矩陣中,一個數在所在行中是最大值,在所在列中是最小值。根據這個定義,這個二維數組中沒有鞍點。
『柒』 c語言程序設計有關鞍點的問題
尋找數組中的鞍點,你在確定了每行的最大值和每列的最小值後,你應該比較的是b[0]與c[0],b[1]與c[1],b[2]與c[2]是否相等吧,你最後連用兩個for循環就不對了。
int num=0;\\統計鞍點數目
for(i=0;i<3;i++)
{
if(b[i]==c[i])
{
printf("&d是鞍點\n",b[i]);
num++;
}
}
if(num==0)
printf("沒有鞍點\n");
『捌』 c語言求鞍點!
#include"stdafx.h"
#include<stdio.h>
voidmain(){
inti,j,a[4][5];
intk,g,min,max;
for(i=0;i<4;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<4;i++){
max=a[i][0];
for(j=1;j<5;j++)
if(a[i][j]>max)
{max=a[i][j];
k=j;
}
}
for(i=1;i<4;i++){
min=a[0][k];
if(a[i][k]<min)
min=a[i][k];
}
if(max==min)
printf("andianis%d",max);
else
printf("noandian");
}
已經編譯通過。你的錯誤是:
①if(max==min)其中為==並不是=;
②最後少一個大括弧,否則程序不完整,無法結束。