C语言编程,数组问题

C语言编程,数组问题使用随机函数初始化一个4行5列的二维数组,求该二维数组中最小值以及该最小值第一次出现的位置。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void showit(int *p,int m,int n){
int i,j;
for(i=0;i<m;i++){
for(j=0;j<n;j++)
printf("%3d",p[i*n+j]);
printf("\n");
}
}
int findmin(int *p,int n){
int i,min=*p;
for(i=1;i<n;i++)
if (p[i]<min) min=p[i];
return min;
}
int findplace(int *p,int n,int x){
int i;
for(i=0;i<n;i++)
if(p[i]==x) return i;
return -1;
}
int main(){
int a[4][5];
int i,j,min,m;
srand((int)time(NULL));
for(i=0;i<4;i++)
for(j=0;j<5;j++)
a[i][j]=rand()%10;
    showit((int *)a,4,5); //显示数组
  min=findmin((int *)a,5*4);//找出最小值  
printf("最小值是%d\n",min); 
m=findplace((int *)a,4*5,min);//找出最小值是第几个元素
printf("其第一次出现在第%d行第%d列\n",m/5+1,m%5+1);
}

追问

谢谢你啊

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-22
是的。第n个学生对应的数组下标应该是n-1。
第2个回答  2019-11-01
更正下你的语句。这个数组是全部赋值等于0
也就是六行六列等于0

为什么加上那个等于0呢?
原因很简单,因为你得寻址啊,要的是值啊,你不复制没有值当然就出错了
第3个回答  2018-05-13
include (studio.h
Max a if 1)28@)1
第4个回答  2021-04-29

C语言的数组概念的学习,通过for循环输出打印数组

相似回答