【发布时间】:2011-04-10 08:57:04
【问题描述】:
#include <iostream>
using namespace std;
int main(){
int findMax(int *);
const int MAX = 100;
int values[MAX];
char ivals[256];
// Get the space-separated values from user input.
cin.getline(ivals, 256, '0');
char *helper;
// Clean input array and transfer it to values.
for(int i = 0; i < (MAX) && ivals[i] != 0; i++){
helper = ivals[i * 2];
values[i] = atoi(helper);
}
int mval = findMax(values);
cout << values << endl << mval;
return 0;
}
//Function to find the maximum value in the array
int findMax(int arr[]){
int localmax = 0;
for(int i = 0; i < (sizeof(arr)/sizeof(int)); i++){
if(arr[i] > localmax){
localmax = arr[i];
}
}
return localmax;
}
该程序的目的是让用户输入以 0 结尾的以空格分隔的一系列值。然后分析该数组以找到最大值。我想出了如何将最初的 char[] 转换为 int[] 以便我可以在其上使用 findMax() 函数而不会出错,但排序循环似乎有其自身的问题,当“cout
【问题讨论】:
-
@aaa carp: 再说一遍:数组不是指针,它有不同的类型、大小……语言执行从数组到数组中第一个元素的地址的自动转换,但就是这样。说一个数组是一个指针就像说一个 int 是一个 double 只是因为
int i = 10; double d = i;编译。
标签: c++ arrays memory printing