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

qq_45039499 2019-05-09 01:31:16
我想把n个正整数放在一个数组里面,这个到底该怎么做?数组长度不能用变量表示吧
...全文
870 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才是数组名(首地址)
14.DEGREES 用途:将弧度转换为度。 语法:DEGREES(angle) 参数:angle是采用弧度单位的一个角度。 实例:公式“=DEGREES(1)返回57.29577951”, =DEGREES(PI()/3)返回60。 15.EVEN 用途:返回沿绝对值增大方向,将一个数值取整为最接近的偶数。 语法:EVEN(number) 参数:number是要取整的一个数值。实例:如果A1=-2.6 则公式“=EVEN(A1)”返回-4;=EVEN(-4.56+6.87)返回4。 16.EXP 用途:返回e的n次幂。语法:EXP(number) 参数:Number为底数e的指数。 注意:EXP函数是计算自然对数的LN 函数的反函数。 实例:如果A1=3,则公式“=EXP(A1)”返回20.085537 即e3。 17.FACT 用途:返回一个数的阶乘,即1*2*3*...*该数。 语法:FACT(number) 注意:Number是计算其阶乘的非负数。如果输入的Number 不是整数,则截去小数部分取整数。 实例:如果A1=3,则公式“=FACT(A1)”返回6;=FACT(5.5) 返回1*2*3*4*5.5 即120。 18.FACTDOUBLE 用途:返回参数Number 的半阶乘。 语法:FACTDOUBLE(number) Number 要计算其半阶乘的数值,如果参数Number 为非整数,则截尾取整。 注意:如果该函数不存在,应当运行“安装”程序加载“分析工具库”。 实例:公式“=FACTDOUBLE(4)”返回8。 19.FLOOR 用途:将参数Number 沿绝对值减小的方向去尾舍入,使其等于最接近的significance 的倍数。 语法:FLOOR(number,significance) 参数:Number为要舍入的某一数值,Significance为该数值的倍数。 实例:如果A1=22.5, 则公式“=FLOOR(A1,1)”返回22; =FLOOR(-2.5,-2)返回-2。 20.GCD 用途:返回两个或多个整数的最大公约数。语法:GCD(number1,number2,...) 参数:Number1,number2, ...为1 到29 个数值,如果数值为非整数,则截尾取整。说明:如果该函数不存在,必须运行“安装”程序加载“分析工具库”。 实例:如果A1=16、A2=28、A3=46,则公式“=GCD(A1:A3)”返回2。 21.INT 用途:将任意实数向下取整为最接近的整数。 语法:INT(number) 参数:Number为需要处理的任意一个实数。 实例:如果A1=16.24、A2=-28.389, 则公式“=INT(A1)”返回16,=INT(A2)返回-29。 ...

70,040

社区成员

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

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