C语言 如何输出最大数组下标
题目如下:输出4×4阶矩阵的最大值、最小值及其下标。我现在不知道怎么去输出下标,我现在只知道用冒泡法去求出最大最小值如何得到下标?...
题目如下:输出4×4阶矩阵的最大值、最小值及其下标。 我现在不知道怎么去输出下标, 我现在只知道用冒泡法去求出最大最小值如何得到下标?
展开
2013-11-25
展开全部
#include <stdio.h>#define N 4typedef struct _Index{
int line;
int col;
}Index;int main()
{
int array[N][N] ={
5, 98, 10, 54,
20, 52, 1, 13,
28, 91, 27, 2,
52, 30, 8, 23,
};
Index maxIndex = { 0 }, minIndex = { 0 };
for(int i=0; i!=N; ++i){
for(int j=0; j!=N; ++j){
if(array[maxIndex.line][maxIndex.col] < array[i][j]){
maxIndex.line = i;
maxIndex.col = j;
}
if(array[minIndex.line][minIndex.col] > array[i][j]){
minIndex.line = i;
minIndex.col = j;
}
}
}
printf("最大值为%d,该值所在位置(%d, %d)\n", array[maxIndex.line][maxIndex.col], maxIndex.line, maxIndex.col);
printf("最小值为%d,该值所在位置(%d, %d)\n", array[minIndex.line][minIndex.col], minIndex.line, minIndex.col);
return 0;
}
int line;
int col;
}Index;int main()
{
int array[N][N] ={
5, 98, 10, 54,
20, 52, 1, 13,
28, 91, 27, 2,
52, 30, 8, 23,
};
Index maxIndex = { 0 }, minIndex = { 0 };
for(int i=0; i!=N; ++i){
for(int j=0; j!=N; ++j){
if(array[maxIndex.line][maxIndex.col] < array[i][j]){
maxIndex.line = i;
maxIndex.col = j;
}
if(array[minIndex.line][minIndex.col] > array[i][j]){
minIndex.line = i;
minIndex.col = j;
}
}
}
printf("最大值为%d,该值所在位置(%d, %d)\n", array[maxIndex.line][maxIndex.col], maxIndex.line, maxIndex.col);
printf("最小值为%d,该值所在位置(%d, %d)\n", array[minIndex.line][minIndex.col], minIndex.line, minIndex.col);
return 0;
}
推荐于2017-05-23
展开全部
搞个变量记录下来呀 如int i,index,a[10]={15,3,6,8,2.......};index=0;for(i=0;i<9;i++){if(a[i]<a[i+1]){index=i;}//每当遇到更大的数就保存下标}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-25
展开全部
每次得到一个值就把那个值的下标用两个变量存下,一个存高维一个存低维,求最大最小就要用到四个变量! 望采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-25
展开全部
你循环遍历时,循环变量的值就是下标
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-25
展开全部
用冒泡法求最大最小值的同时,记录下i,ji和j就是下标。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询