如何将字段值写入另一个字段 - C
How to write field values to another field - C
我需要将字段值从 moj_array[]
写入 input_array[]
...我需要这样做,因为 input_array
必须是 const int
的数据类型,所以我不能在我的代码中使用此字段。
请问是哪里出了问题?
#include <stdio.h>
#include <math.h>
int array_min(const int input_array[], const int array_size);
int main() {
//uloha-7
int input_array[] = { 1, 2, 3, 4, 5 };
printf("%d\n", array_min(input_array, 5));
// prints: 1
return 0;
}
//uloha7.1
int array_min(const int input_array[], const int array_size) {
int i = 0;
int moj_array[i];
int velkost;
moj_array[i] = input_array[i];
velkost = array_size;
if (moj_array != NULL) {
for (int j = velkost-1; j > 0; j--) {
for (int i = 0; i < j; i++) {
if (moj_array[i+1] < moj_array[i]) {
// swap
int tmp = moj_array[i+1];
moj_array[i+1] = moj_array[i];
moj_array[i] = tmp;
}
}
}
return moj_array[0];
}
return -1;
}
对数组的副本进行排序是一种非常低效的确定其最小值的方法。
您应该遍历数组以确定最小值并 return 最后:
// Function array_min: return the minimum value in an array.
// input_array: a non null pointer to an array of int
// array_size: the number of entries in the array, must be > 0
int array_min(const int input_array[], const int array_size) {
int min = input_array[0];
for (int i = 1; i < array_size; i++) {
if (min > input_array[i])
min = input_array[i];
}
return min;
}
我需要将字段值从 moj_array[]
写入 input_array[]
...我需要这样做,因为 input_array
必须是 const int
的数据类型,所以我不能在我的代码中使用此字段。
请问是哪里出了问题?
#include <stdio.h>
#include <math.h>
int array_min(const int input_array[], const int array_size);
int main() {
//uloha-7
int input_array[] = { 1, 2, 3, 4, 5 };
printf("%d\n", array_min(input_array, 5));
// prints: 1
return 0;
}
//uloha7.1
int array_min(const int input_array[], const int array_size) {
int i = 0;
int moj_array[i];
int velkost;
moj_array[i] = input_array[i];
velkost = array_size;
if (moj_array != NULL) {
for (int j = velkost-1; j > 0; j--) {
for (int i = 0; i < j; i++) {
if (moj_array[i+1] < moj_array[i]) {
// swap
int tmp = moj_array[i+1];
moj_array[i+1] = moj_array[i];
moj_array[i] = tmp;
}
}
}
return moj_array[0];
}
return -1;
}
对数组的副本进行排序是一种非常低效的确定其最小值的方法。
您应该遍历数组以确定最小值并 return 最后:
// Function array_min: return the minimum value in an array.
// input_array: a non null pointer to an array of int
// array_size: the number of entries in the array, must be > 0
int array_min(const int input_array[], const int array_size) {
int min = input_array[0];
for (int i = 1; i < array_size; i++) {
if (min > input_array[i])
min = input_array[i];
}
return min;
}