【发布时间】:2013-12-14 11:08:40
【问题描述】:
我是 C 的新手,我们的老师给了我们这个作业,找到从 [0; 生成的矩阵中的最小值; MAX-1]。该矩阵应被解释为一维数组。生成工作正常,但我无法让最小部分工作,它应该返回 int MINIMUM - 这工作,但我不知道如何链接 pos_x 和 pos_y 在 min 函数中使用 main 中的变量,所以我可以在 main 中打印它们。我得到的警告是警告:赋值使指针从整数不进行强制转换[默认启用]。 非常感谢任何帮助。
#include <stdio.h>
#include <stdlib.h>
#define N 5
void fill_random(int *m, int max){
for(int i = 0; i < N*N; i++)
m[i] = rand() % max;
}
int min(int *m, int *pos_x, int *pos_y){
int minimum = m[0];
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(m[i * N + j] < minimum){
minimum = m[i * N + j];
pos_x = i;
pos_y = j;
}
return minimum;
}
int main(void){
int m[N*N];
printf("Fill random from [0;MAX-1]:\n");
int input;
printf("Enter MAX: ");
scanf("%d", &input);
fill_random(m, input);
printf("\nMinumum:\n");
int pos_x, pos_y;
min(m, pos_x, pos_y);
printf("\nMinimum is %d at [%d][%d]", min(m, pos_x, pos_y), pos_x, pos_y);
}
return 0;
【问题讨论】:
标签: variables pointers warnings