从键盘输入整数n表示一维数组长度,利用指针编写函数获取n个数中最小元素的地址

从键盘输入整数n表示一维数组长度,根据n的值动态申请存储空间,并输入n个数对数组元素赋值,利用指针编写函数获取n个数中最小元素的地址,并输出其在数组中的下标

a. 输入和输出示例:

img

    第1行是输入的n的值,第2行是输入的n个元素,第3行输出n个数中最小元素的值及其下标;如果有多个最小元素,输出第1个最小元素的下标

b. 说明:

    i. 程序中包含主函数main()和子函数

    ii. 在主函数中实现从键盘对数组长度n和数组元素赋值

    iii. 子函数有2个参数:第一个参数是指针变量,第二个参数是一维数组的长度

    iv. 子函数的返回值是一个指针,返回的是n个数中最小元素的地址

    v. 在主函数中通过同类指针相减输出最小元素的下标

    

img

int *minimum(int *p,int n)
{
    int *q = p;
    for(int i=0;i<n;i++)
    {
        if(*p < *q)
            q = p;
        p++;
    }
    return q;
}

  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/7525818
  • 你也可以参考下这篇文章:输入n×n阶矩阵,用函数编程计算并输出其两条对角线上的各元素之和
  • 除此之外, 这篇博客: 一些零碎代码中的 从键盘输入n,计算2~n中的质数并且输出 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • :#include
    #include"trap.h"
    #include

    using namespace std;
    int main()
    {
    int n;
    cin >> n;
    int count = 0;
    Arraynice(10);
    int i;

    for (i = 2; i < n; i++)
    {//检查i能否被比它小的质数整除
    	bool judge = true;
    	for (int j = 0; j < count; j++)//如果i被nice[j]整除说明i不是质数
    	{
    		if (i % nice[j] == 0)
    		{
    			judge = false;
    			break;
    		}
    	}
    	if (judge)
    	{
    		if (count == nice.getsize())//如果质数表满了将其空间加倍
    			nice.resize(count * 2);
    		nice[count++] = i;
    	}
    }
    for (i = 0; i < count; i++)
    	cout <<setw(8)<< nice[i];
    

    }//个人认为a[0]一开始应该是一个随机数