【C语言】经典题目(二)

news2024/10/5 10:54:54

C站的小伙伴们,大家好呀^^!
这一篇文章是C语言之经典题目,快来跟我一起进入C语言的世界吧!💞
C语言其他刷题篇在这里哦:
【C】语言经典题目(一)
【C语言】字符串—刷题篇

【C语言】经典题目二

  • 求三角形面积
  • 判断某一年是否为闰年
  • 根据三角形类型输出
  • 求S=a+aa+aaa+ …… 的值
  • 回文字
  • 镜像串

求三角形面积

给出三角形的边长,求三角形的面积。
利用海伦公式求三角形面积
area=根号下 s*(s-a)*(s-b)(s-c)
其中s=(a+b+c)/2

#include <stdio.h>
#include <math.h>
int main (void)
{
	float a,b,c,s,area;
	printf("Please input a,b,c:\n");
	scanf("%f%f%f",&a,&b,&c);
	if (a+b<=c || a+c<=b || b+c<=a)
		printf("不能构成三角形\n");
	else
	{
		s=(a+b+c)/2;
		area=sqrt(s*(s-a)*(s-b)*(s-c));
		printf("三角形的面积为%.2f\n",area);
	}
	return 0;
}

判断某一年是否为闰年

判断是否为闰年:

  • 能被400整除
  • 能被4整除但不能被100整除
  • 设置标志量leap进行判断,若leap为1,则为闰年,若为0,则不是闰年。
#include <stdio.h>
int main (void)
{
	int year,leap;//leap标志变量
	printf("请输入年份:\n");
	scanf("%d",&year);
	if (year%400==0) //能被400整除是闰年
		leap=1;
	else if (year%4==0 && year%100!=0)//能被4整除但不能被100整除是闰年
		leap=1;
	else 
		leap=0;
	if (leap)
		printf("该年份为闰年\n");
	else
		printf("该年份不是闰年\n");
	return 0;
}

根据三角形类型输出

编写程序,要求程序运行时,从键盘输入三角形的三边长(整型)输出三角形的类型代码。
若三角形为等边三角形,输出1;若三角形为等腰三角形,输出2其他三角形,输出0;若输出的三条边不能构成三角形,输出error!

#include <stdio.h>
int main (void)
{
	int a,b,c;
	printf("请输入三角形的三边长:\n");
	scanf("%d%d%d",&a,&b,&c);
	if (a==b && a==c )  //等边三角形
		printf("1\n");
	else if ((a==b && a!=c) || (a==c && a!=b) || (b==c && b!=a)) //等腰三角形
	 //逻辑与运算符11级
		printf("2\n");
	else if (a+b<=c || a+c<=b || b+c<=a) //不能构成三角形
	 //逻辑或运算符12级
		printf("error!\n");
	else 
		printf("0\n");
	return 0;
}

求S=a+aa+aaa+ …… 的值

求S=a+aa+aaa+ …… 的值,其中a是一个数字,n表示a的位数,例如2+22+222+2222+22222(此时n为5)n由键盘输入。
定义变量:
sum表示总和,记得初始化为0
term表示当前项的值
找规律:
后一项是前一项的10倍+a

#include <stdio.h>
int main (void)
{
	int a,n,term,sum,i;
	printf("请输入一个数字a:\n");
	scanf ("%d",&a);
	printf("请输入a的位数:\n");
	scanf("%d",&n);
	term=a;  //term代表当前项的值
	sum=0;  //sum表示总和
	for (i=1;i<=n;i++)
	{
		sum+=term;  //把当前项的值累加到sum中
		term=term*10+a;
	}
	printf("S的值为%d\n",sum);
	return 0;
}

回文字

所谓回文串,就是反转以后和原串相同,如abba和madam。

样例输入
ISAPALINILAPASI
样例输出
ISAPALINILAPASI – is a regular palindrome.

分析:对输入的字符串,利用双指针,,判断第一个是否等于最后一个,第二个是否等于倒数第二个……直到i<k

设置标志量,若在字符串中有对称元素不相等的,则将标志量改为0。根据标志量判断,若flag为0,(则不用进行进一步的判断),退出循环。

根据标志量进行输出:若标志量为0,则说明不是回文字。若标志量为1,则说明是回文字。

在这里插入图片描述

#include<stdio.h>
#include<string.h>
int main (void)
{
    int i,k,n;
    int flag=1;//标志量
    char s[128]={0};
    gets(s);
    n=strlen(s);//字符串长度
    for (i=0,k=n-1;i<k;i++,k--)
    {
        if (s[i]!=s[k])
        {
            flag=0;
            break;
        }       
    }
    if (flag==1)
    printf("%s --is a regular palindrome.\n",s);
    else
    printf("%s --is not a regular palindrome.\n",s);
}

镜像串

所谓镜像串,就是左右镜像之后和原串相同,如2S和3AIAE。
镜像字符如下:
在这里插入图片描述
分析:镜像字符是固定的一些常量,我们需要使用常量数组来存放一些存在的镜像字符。

与判断回文字一样,镜像串同样首尾判断,利用双指针进行同时移动,直到一个小于另一个即可。
可以定义两个常量字符数组a和b,b中存放与a对应的镜像字符。

设置标志量,若在字符串中有对称元素不相等的,则将标志量改为0。并在外层循环中,根据标志量判断,若flag为0,(则不用进行进一步的判断),退出循环。

根据标志量进行输出:若标志量为0,则说明不是镜像串。若标志量为1,则说明是镜像串。

在这里插入图片描述

#include <stdio.h>
#include<string.h>
int main(void)
{
    const char a[80]="AEHIJLMOSTUVWXYZ12358";
    const char b[80]="A3HILJMO2TUVWXY51SEZ8";
    char s[80];
    int i,k,n,j;
    int flag=1;//设标志量
    gets(s);
    n=strlen(s);
    for (i=0,k=n-1;i<k;i++,k--)//对字符数组s进行遍历
    {
        for(j=0;a[j]!='\0';j++)
        {
            if (s[i]==a[j])//在数组a中查找s[i]
            {
                if(s[k]!=b[j])//判断与s[i]对应的s[k]是否是是[i]的镜像
                {
                    flag=0;
                }
            }
        }
        if (flag==0) break;
    }
    //根据标志量判断输出
    if(flag==0)
    printf("%s--is a not mirrored string.\n",s);
    if (flag==1)
    printf("%s--is a mirrored string.\n",s);
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/588738.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java.time包使用指南

目录 前言一、时区与时间1. 世界标准时&#xff1a;UTC、GMT、UT2. 地区时&#xff1a;Asia/Shanghai、UTC83. 时区&#xff1a;ZoneId、TimeZone4. 时间偏移量&#xff1a;ZoneOffset5. 时区简称&#xff1a;CTT、PRC 二、主要时间类1. 重要时间接口&#xff1a;Temporal2. 时…

Uni-app学习从0到1开发一个app——(1)初步了解各种小程序开发框架

文章目录 0 引入1、小程序常用框架1.1、 mpvue1.2、 mpvue1.3、 Tina.js1.4、 WePY1.5 微信官方1.6 TouchUI WX 2、uin-app3、引用 0 引入 uin-app官网地址&#xff1a;https://uniapp.dcloud.net.cn/ 最近对于小程序莫名的感兴趣起来&#xff0c;索性就从uni-app开始吧 1、小…

spring boot使用elasticsearch分词,排序,分页,高亮简单示例

目录 1. 创建ES实体2. 创建查询实体3. 查询方法实现3.1 核心代码3.2 构建查询条件3.2.1 关键词分词 3.3 高亮处理 4.完整查询代码展示 记&#xff0c;写一个简单的es分词demo,es版本6.8.12 如果使用es7有些方法可能会有所改变&#xff0c;请参考7的文档 es安装教程&#xff1a;…

PMP-识别相关方的重要性

一、为什么要识别相关方 每个项目都有相关方&#xff0c;他们会受项目的积极或消极影响&#xff0c;或者能对项目施加积极或消极的影响。有些相关方影响项目工作或成果的能力有限&#xff0c;而有些相关方可能对项目及其期望成果有重大影响。项目经理和团队正确识别并合理引导所…

Apache的日志分割

一、日志分割的作用 我们知道当服务安装完成以后&#xff0c;都会在相关服务下有一个logs文件里面有着访问日志和错误日志。访问日志可以帮我们记录访问者的信息&#xff0c;错误日志一般在服务搭建&#xff0c;服务配置&#xff0c;启动时能够快速寻找错误原因的日志&#xf…

堆的应用(堆排序、TOP - K问题)

前言 &#x1f34e; 时间复杂度&#xff1a; &#x1f95d; 堆排序的最坏时间复杂度为 &#xff1a;O(n*lg(n)) &#x1f95d; TOP - K问题的最坏时间复杂度为&#xff1a;O(n*lg(k)) &#x1f341;前面我们学习了二叉树、以及堆的结构&#xff0c;也用顺序表的结构成功的把堆的…

【uni-app】使用外部组件不显示报错组件未找到解决方案

文章目录 前言一、问题描述二、温馨提示总结 前言 大家好&#xff0c;今天和大家分享一下uni-app使用外部组件不显示报错的一个解决方案&#xff0c;希望能够帮助到大家。 一、问题描述 我在使用uni-app在开发项目时引入了一个外部的组件库&#xff0c;刚开始引入的时候还是…

【复习笔记】FreeRTOS(二)创建和删除任务

本文是FreeRTOS复习笔记的第二节&#xff0c;创建和删除任务&#xff0c;使用的开发板是stm32f407VET6&#xff0c;创建两个任务&#xff0c;task1负责闪烁LED&#xff0c;task2负责按键控制&#xff0c;当按键按下时task1停止执行&#xff0c;任务的状态显示到TFT显示屏和串口…

【数据库系统及应用】— 日志、故障恢复、事务、并发控制、调度、检查点

日志文件是用于记录__________。 A、数据操作 B、程序运行过程 C、程序执行结果 D、对数据的所有更新操作 下列说法正确的是__________。 A、事务故障可以通过运行日志进行恢复 B、介质故障只需将备份恢复到系统中即可实现正确性 C、检查点是指检查发生故障并进行恢复的时刻点…

MySQL 对日期使用 DATE_FORMAT()函数

文章目录 DATE_FORMAT()函数显示今天是星期几只显示年月显示当前时间的分钟数和秒数 DATE_FORMAT()函数 前面使用日期时间函数&#xff0c;获取到的要么是 yyyy-mm-dd 形式的日期&#xff0c;要么是 hh:MM:ss 形式的时间&#xff0c;或者是 yyyy-mm-dd hh:mm:ss 形式的日期及时…

论文解读 | ICRA2022:用深度贝叶斯算法来估计ICP的协方差

原创 | 文 BFT机器人 01 研究背景 在点云处理中&#xff0c;ICP算法是一种常用的点云配准方法&#xff0c;通过将两个或多个点云对齐&#xff0c;可以进行后续的建模、识别和跟踪等处理。 然而&#xff0c;在ICP算法中&#xff0c;协方差估计起着非常重要的作用&#xff0c;它…

网络安全基础免杀

1. 会话提升的几种方式2. armitage的熟悉3. handler生成监听器的方法4. 防止会话假死5. 控制台设置编码6. upx加壳7. msfvenom木马payload持久化8. msfvenom木马编码 正文 免杀1 1. 会话提升的几种方式 python -c "import pty;pty.spawn(/bin/bash);" 会话提升 se…

linuxOps基础_linux文件打包压缩与解压缩

linux打包压缩概念 默认情况下&#xff0c;Linux的压缩概念一次只能压缩一个文件。针对多文件或文件夹无法进行直接压缩。所以需要提前对多个文件或文件夹进行打包&#xff0c;这样才可以进行压缩操作。 打包 1.txt 5MB 2.txt 10MB 3.txt 15MB1.txt 2.txt 3.txt 打包…

为kong网关添加key-auth插件实现安全认证

官方指导文档&#xff1a;https://docs.konghq.com/gateway/latest/get-started/key-authentication/ 一、新建一个用户 这里我们新建一个usernameluka的用户 [rootmin ~]# curl -i -X POST http://localhost:8001/consumers/ \ > --data usernameluka HTTP/1.1 201 Cr…

JavaEE HTTP状态码 HTTP数据报的构造

HTTP状态码HTTP数据报的构造 文章目录 JavaEE & HTTP状态码 & HTTP数据报的构造1. HTTP状态码1.1 200 - OK1.2 404 - Not Found1.3 403 - Forbidden1.4 500 - Internal Server Error1.5 504 - Gateway Timeout1.6 302/301 重定向 2. 构造HTTP请求2.1 浏览器搜索栏输入u…

聚焦2023北京安博会,超高清安防应用将成潮流

&#xff08;1&#xff09;2023北京安博会 中国安全防范产品行业协会主办并承办的第十六届&#xff08;2023&#xff09;中国国际社会公共安全产品博览会&#xff08;Security China 2023&#xff09;&#xff0c;将于2023年6月7&#xff5e;10日在北京首钢会展中心开幕。安博…

面试阿里测开岗失败后,被面试官在朋友圈吐槽了......

前一阵子有个徒弟向我诉苦&#xff0c;说自己在参加某大厂测试面试的时候被面试官怼得哑口无言&#xff0c;场面让他一度十分尴尬 印象最深的就是下面几个问题&#xff1a; 根据你以前的工作经验和学习到的测试技术&#xff0c;说说你对质量保证的理解&#xff1f; 非关系型…

Jenkins+JMeter实现自动化,性能压测玩转CICD!

目录 前言&#xff1a; 准备工作 编写Jenkinsfile 编写JMeter脚本 编写 Dockerfile 总结 前言&#xff1a; 性能压测是应用程序开发中不可或缺的一环。它通过模拟应用程序在真实环境下的负载情况&#xff0c;从而检测系统在高负载下的性能表现。而随着依托云架构部署业务的不…

2022年长三角高校数学建模竞赛B题齿轮箱故障诊断解题全过程文档及程序

2022年长三角高校数学建模竞赛 B题 齿轮箱故障诊断 原题再现&#xff1a; 齿轮箱是用于增加输出扭矩或改变电机速度的机械装置&#xff0c;被广泛应用于如汽车、输送机、风机等机械设备中。它由两个或多个齿轮组成&#xff0c;其中一个齿轮由电机驱动。电机的轴连接到齿轮箱的…

大数据 Ranger2.1.0 适配 Kafka3.4.0

Ranger2.1.0 适配 Kafka3.4.0 官方说明POM代码说明 根据官方说明Kafka3.0以上版本将会被替换权限认证方式&#xff0c;包括 类和方法 的变换&#xff0c;所以需要对ranger中继承 kafka 的实现中&#xff0c;修改相应的逻辑 官方说明 Kafka3.0以上版本将会被替换权限认证方式&a…