내 임무는 그/그녀가 enter.Dynamically 배열을 생성하고 사용자의 숫자를 받아들이고으로 그들을 배치 할 얼마나 많은 정수 사용자를 요청하는 프로그램을 작성하는 것입니다 기대 나는 것이 아니다 배열입니다. 입력 된 가장 작은 수를 판별하기 위해 배열을 함수에 전달하십시오. 최소 숫자를 인쇄하십시오. 적절하거나 가능한 포인터 표기법을 사용하십시오.주에서 내 출력은 내가
나는 배열과 포인터 표기법의 사용을 이해하고있다. (나는 언제나 배울 열망이다.) 그러나 주 기능의 출력은 내가 기대하는 바가 아니거나 어쩌면 그럴 것이다. 내가 무엇을 기대해야하고 그것을 깨닫지 못하고 있는지. 여기에 내가 지금까지 무엇을 가지고 있지만 사용자가 입력 한 배열에서 가장 작은 값을 출력하는 데 막혔습니다.
#include "stdafx.h"
void CreateValues (int [], int);
int FindSmallest(int [], int);
int _tmain(int argc, _TCHAR* argv[])
{
int numValues = 0;
cout << "How many values would you like to enter?" << endl;
cin >> numValues;
int *pArray = new int[numValues];
CreateValues (pArray, numValues);
FindSmallest(pArray, numValues);
delete[] pArray;
int i = 0;
i = FindSmallest(pArray, sizeof(pArray)/sizeof(pArray[0]));
cout<<"The smallest number in the array is "<<(*pArray + i)<<endl;
system("pause");
return 0;
}
void CreateValues (int pArray[], int numValues)
{
for (int i = 0; i < numValues; i++)
{
cout << "Please enter value #" << i+1<< endl;
cin >> *(pArray+i);
}
}
int FindSmallest(int pArray[], int numValues)
{
int index = 0;
int x = sizeof(pArray);
for (int i = 0; i < numValues; i++)
{
if (pArray[i] < pArray[index])
{
index = i;
}
}
return index;
}
제공 할 수있는 도움이 있으면 대단히 감사하겠습니다. 건배!!
명백한 것은 당신이 전화입니다'FindSmallest은()'결과를 저장하지 않고, 다음 배열을 삭제 한 다음 전화'FindSmallest()'다시 (지금은 삭제 된 배열). 당신은 아마 배열에 집착하고 포인터 연산을 시도하지 말아야합니다 ... – John3136
당신의 입력과 출력은 무엇입니까? 너는 무엇을 기대 했는가? –
'sizeof (pArray)/sizeof (pArray [0])'도 잘못되었습니다 ... 포인터에 적용 할 수 없습니다 (첫 번째'sizeof'는 가리키는 포인터의 크기가 아니라 포인터의 크기를 반환합니다) 데이터이며 크기가 런타임에만 설정되므로'sizeof' 사용에 대한 수정이 필요하지 않습니다. 'numValues'를 계속 사용하십시오. –