这个C语言程序怎么写啊

这个C语言程序怎么写啊!利用malloc函数开辟动态存储单元,顺序存放输入的10个整数,然后求这10个整数中的最大值。


#include <stdio.h>
#include <stdlib.h>

int main()
{
 int max = arr[0],i;
    int *arr = (int *)malloc(10 * sizeof(int));
    if (arr == NULL)
    {
        printf("内存分配失败\n");
        exit(1);
    }

    printf("请输入 10 个整数:\n");
    for ( i = 0; i < 10; i++)
    {
        scanf("%d", &arr[i]);
    }

   
    for ( i = 1; i < 10; i++)
    {
        if (arr[i] > max)
        {
            max = arr[i];
        }
    }

    printf("最大值为:%d\n", max);

    free(arr);

    return 0;
}
#include <stdio.h>
#include <stdlib.h>  // 为了使用malloc函数

int main() {
    int n = 10;  // 数组大小为10

    int* arr = (int*)malloc(n * sizeof(int));  // 动态分配空间,开辟一个长度为n的int类型的数组,返回指向数组的指针

    // 读取输入的10个整数
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }

    int max_val = arr[0];  // 初始值为第一个数
    // 找出数组中最大的数
    for (int i = 1; i < n; i++) {
        if (arr[i] > max_val) {
            max_val = arr[i];
        }
    }

    printf("最大值为:%d\n", max_val);

    free(arr);  // 释放动态分配的内存

    return 0;
}
  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/363169
  • 这篇博客也不错, 你可以看下c malloc实现:动态申请三维数组
  • 除此之外, 这篇博客: C语言动态数组的两种定义方式中的 二、使用malloc函数 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • #include<stdio.h>
    int main()
    {
    	int a;
    	printf("请输入字符串长度");
    	scanf("%d",&a);
    	int *pa;
    	pa=(char *) malloc(a*sizeof(char));
    	if(pa==NULL)
    	{
    		printf("内存分配失败!!!");
    	}
    	printf("请输入字符");
    	getchar();
    	int i;
    	for(i=0;i<a;i++)
    	{
    		scanf("%c",pa+i);
    	}
    	for(i=0;i<a;i++)
    	{
    		printf("%c",*(pa+i));
    	}
    	return 0;
    } 
    

    【运行结果】

      虽然这里使用了两种方法,但是这两种方法有很大的区别,特别是在存储位置上面。