c语言程序设计:求数组中的最小数
编写函数intgetminitem(int&,int*),实现求一个整型数组中所有数的最小值要求返回值为最小值元素的下标;函数的参数为整型数组的首地址和存储最小元素的变量...
编写函数int getminitem(int &,int *),实现求一个整型数组中所有数的最小值
要求返回值为最小值元素的下标;函数的参数为整型数组的首地址和存储最小元素的变量地址 展开
要求返回值为最小值元素的下标;函数的参数为整型数组的首地址和存储最小元素的变量地址 展开
6个回答
展开全部
/**************************************************VC6.0运行通过*****************************************/
#include <stdio.h>
#include <malloc.h>
int getminitem(int arr[],int *minItem)
{
int length = 0;
int *p = arr;
while(*p != NULL) //先求数组长度
{
length++;
p++;
}
int minItemPosition = 0;//假设第0个为最小值
*minItem = arr[0];//假设第0个为最小值
for (int i=1; i<length; i++)
{
if (arr[i] < *minItem)//如果发现比当前的最小值还小,就替换
{
*minItem = arr[i];
minItemPosition = i;
break;
}
}
return minItemPosition;
}
void main()
{
int *minItem = (int *)malloc(sizeof(int));//要先给minItem分配一个内存空间
int arr[10] = {3,64,213,65,32,87,43,2,7,2};
int position = getminitem(arr, minItem);
printf("最小值的下标是: %d, 值为 %d\n",position,*minItem);
}
#include <stdio.h>
#include <malloc.h>
int getminitem(int arr[],int *minItem)
{
int length = 0;
int *p = arr;
while(*p != NULL) //先求数组长度
{
length++;
p++;
}
int minItemPosition = 0;//假设第0个为最小值
*minItem = arr[0];//假设第0个为最小值
for (int i=1; i<length; i++)
{
if (arr[i] < *minItem)//如果发现比当前的最小值还小,就替换
{
*minItem = arr[i];
minItemPosition = i;
break;
}
}
return minItemPosition;
}
void main()
{
int *minItem = (int *)malloc(sizeof(int));//要先给minItem分配一个内存空间
int arr[10] = {3,64,213,65,32,87,43,2,7,2};
int position = getminitem(arr, minItem);
printf("最小值的下标是: %d, 值为 %d\n",position,*minItem);
}
更多追问追答
追问
您确认VC6.0运行通过?
syntax error : missing ';' before 'type'
syntax error : missing ';' before 'type'
syntax error : missing ';' before 'type'
syntax error : missing ')' before 'type'
syntax error : missing ';' before 'type'
'i' : undeclared identifier
syntax error : ')'
syntax error : missing ';' before '{'
'minItemPosition' : undeclared identifier
illegal break
另函数原型不符合题目
追答
#include
#include
int getminitem(int &min,int *arr)
{
int length = 0;
int *p = arr;
while(*p != NULL) //先求数组长度
{
length++;
p++;
}
int minPosition = 0;//假设第0个为最小值
min = arr[0];//假设第0个为最小值
for (int i=1; i<length; i++)
{
if (arr[i] < min)//如果发现比当前的最小值还小,就替换
{
min = arr[i];
minPosition = i;
}
}
return minPosition;
}
int main()
{
int min = 0;//初始化
int arr[10] = {3,64,213,65,32,87,43,2,7,2};
int position = getminitem(min, arr);
printf("最小值的下标是: %d, 值为 %d\n",position,min);
return 0;
}
//另附运行图片,一定要是cpp文件, 纯c文件你给的那个函数原型是C++独有的,上面的"倒霉熊lujin"说的对, 你在VC6中新建C/C++ Source File时,不要给文件名后缀加.c, 加.cpp(或者不加)就可以了, 这个函数不可能纯用C实现, 绝对是书上写错了,你也知道很多人写书完全不负责任的(包括清华)
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询