栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言基础练习题21-23

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言基础练习题21-23

文章目录
  • 21、有序数组的平方
  • 22、三角形的最大周长
  • 23、有效的山脉数组

21、有序数组的平方

给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排
序。

#include
#define MAX 1000
int main()
{
	int nums[MAX],i=0,newnums[MAX],m;
	while(1&&i
		scanf("%d",&m);
		nums[i]=m;
		i+=1;
        char c = getchar();
        if (c == 'n') {
            break;
        }
	}

	for(int j=0;j

		newnums[j]=nums[j]*nums[j];
	}
	for(int k=0;k
		for(int t=k;t
			if(newnums[k]>newnums[t]){
				m=newnums[k];
				newnums[k]=newnums[t];
				newnums[t]=m;
			}
		}
	}
	for(int k=0;k
		printf("%d ",newnums[k]);
	} 
	return 0;
}

22、三角形的最大周长

给定由一些正数(代表长度)组成的数组 nums ,返回 由其中三个长度组成的、面积不为零的三角形的最大周长 。
如果不能形成任何面积不为零的三角形,返回 0。
思路:先将数组进行排序,方便找到最大周长的边。三角形满足两边之和大于第三边,当确定a>b>c时,只要b+c>a即可,此时取相邻三条边时周长是最大的。

#include
#define MAX 1000
int main()
{
	int a,b,c,nums[MAX],i=0,newnums[MAX],m;
	while(1&&i
		scanf("%d",&m);
		nums[i]=m;
		i+=1;
        char c = getchar();
        if (c == 'n') {
            break;
        }
	}

	for(int k=0;k
		for(int t=k;t
			if(nums[k]
				m=nums[k];
				nums[k]=nums[t];
				nums[t]=m;
			}
		}
	}
	for(int j=0;j
		if(nums[j]
			printf("%d",nums[j]+nums[j+1]+nums[j+2]);
			return 0;
		}
	}
	printf("0");
	return 0;
}

23、有效的山脉数组

给定一个整数数组 arr,如果它是有效的山脉数组就返回 true,否则返回 false。
如果 arr 满足下述条件,那么它是一个山脉数组:
arr.length >= 3
在 0 < i < arr.length - 1 条件下,存在 i 使得:
arr[0] < arr[1] < … arr[i-1] < arr[i]
arr[i] > arr[i+1] > … > arr[arr.length - 1]

思路:只要找到数组中的最大值,然后判断最大值前面部分是升序的(从数组的第一个元素开始到最大值),后面部分是降序的
参考链接:https://zhuanlan.zhihu.com/p/313374247

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1026696.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号