用自定义函数求n个正整数的最大值

qq_45039499 2019-05-09 01:31:16
我想把n个正整数放在一个数组里面,这个到底该怎么做?数组长度不能用变量表示吧
...全文
888 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_45039499 2019-05-11
  • 打赏
  • 举报
回复
谢谢您!!!我懂了!
CaptainXue 2019-05-09
  • 打赏
  • 举报
回复
1、如果没有学过动态分配,可以采用另一种方法,直接定义一个比题目中正数个数范围大的数组,假如个数不超过100,可以直接定义为a[110],只要维度比100大就可以。
2、其次你的swot函数有逻辑问题,你是直接把相邻的两个数来进行比较从而得到max,这个是不对的,例如:3 5 2 4四个数,你得到的最大值是4。注意这里应该是数组中的每个元素依次和最新的max进行比较大小,然后再更新max的值。有什么其他问题可以多问!
直接上代码:

#include<stdio.h>
int swot(int c,int a[]){
for(int i=0;i<c;i++)
scanf("%d",&a[i]);
int max=0;//最好初始化
for(int i=0;i<c;i++){
if(max<a[i])
max=a[i];
}
printf("%d",max);
}
main(void){
int c,a[1000];//只需要保证a的维度比c大即可,这样既不需要动态申请空间
scanf("%d",&c);
swot(c,a);
}

qq_45039499 2019-05-09
  • 打赏
  • 举报
回复
引用 2 楼 mozhju的回复:
动态申请内存
void main()
{
int c;
int *b;
scanf("%d", c);
b = (int *)malloc(c * sizeof(int));
swot(c, b);
free(b)
}
请问还有别的办法吗?这个我还没学过。有点超纲了
自信男孩 2019-05-09
  • 打赏
  • 举报
回复
引用 2 楼 mozhju 的回复:
动态申请内存
void main()
{
int c;
int *b;
scanf("%d", c);
b = (int *)malloc(c * sizeof(int));
swot(c, b);
free(b)
}


scanf("%d", &c);注意加上&
mozhju 2019-05-09
  • 打赏
  • 举报
回复
动态申请内存
void main()
{
int c;
int *b;
scanf("%d", c);
b = (int *)malloc(c * sizeof(int));
swot(c, b);
free(b)
}
Italink 2019-05-09
  • 打赏
  • 举报
回复
b[c]是数组的第c+1个元素,b才是数组名(首地址)
内容概要:本文详细介绍了利用Simulink进行变压器开路试验的电路连接配置与仿真实现方法,重点在于通过仿真手段还原实际电力系统中变压器在空载条件下的电气特性,从而深入理解其工作原理与性能表现。文章作为电力系统仿真系列研究的一部分,系统阐述了从电路模型搭建、参数设定、仿真运行到结果分析的完整流程,突出展示了MATLAB/Simulink在电力设备建模与教学科研中的强大功能与应用价值。; 适合人群:具备电力系统基础知识,熟悉MATLAB/Simulink仿真环境,从事电气工程、自动化及相关领域的研发人员,以及高年级本科生和研究生。; 使用场景及目标:①掌握变压器开路试验的基本原理与Simulink仿真建模的具体步骤;②通过仿真实验深入理解空载电流、铁芯损耗及励磁特性等关键参数的物理意义;③为后续开展变压器短路试验、暂态过程分析以及其他电力设备的仿真研究奠定理论与实践基础。; 阅读建议:建议结合Simulink软件动手实践,逐步构建并调试电路模型,重点关注各元件参数的设置方法与测量模块的应用技巧,同时推荐参考文中提及的其他相关仿真案例进行拓展学习,以全面提升对电力系统仿真实践的整体认知与操作能力。

70,038

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧