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

这篇具有很好参考价值的文章主要介绍了【C语言】经典题目(二)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

求三角形面积

给出三角形的边长,求三角形的面积。
利用海伦公式求三角形面积
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,则说明是回文字。

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

#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。
镜像字符如下:
【C语言】经典题目(二)
分析:镜像字符是固定的一些常量,我们需要使用常量数组来存放一些存在的镜像字符。

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

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

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

【C语言】经典题目(二)文章来源地址https://www.toymoban.com/news/detail-470865.html

#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;
}

到了这里,关于【C语言】经典题目(二)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言的三个经典题目:三步翻转法、杨氏矩阵、辗转相除法

    三步翻转法是C语言中用来求旋转字符串的一种进阶方法,我们以具体例题对其进行介绍。 例:求一个字符串左旋n个字符后得到的新字符串 普通方法实现 我们知道,左旋一个字符一共分为三步: 将字符串的第一个字符存放到临时变量中; 将字符串中除’\\0’外的所有字符整

    2024年02月02日
    浏览(48)
  • 【图论经典题目讲解】CF786B - Legacy 一道线段树优化建图的经典题目

    D e s c r i p t i o n mathrm{Description} Description 给定 1 1 1 张 n n n 个点的有向图,初始没有边,接下来有 q q q 次操作,形式如下: 1 u v w 表示从 u u u 向 v v v 连接 1 1 1 条长度为 w w w 的有向边 2 u l r w 表示从 u u u 向 i i i ( i ∈ [ l , r ] iin [l,r] i ∈ [ l , r ] )连接 1 1 1 条长度为 w w w

    2024年02月20日
    浏览(83)
  • 动态内存面试的经典题目

    𝙉𝙞𝙘𝙚!!👏🏻‧✧̣̥̇‧✦👏🏻‧✧̣̥̇‧✦ 👏🏻‧✧̣̥̇:Solitary-walk       ⸝⋆   ━━━┓      - 个性标签 - :来于“云”的“羽球人”。 Talk is cheap. Show me the code ┗━━━━━━━  ➴ ⷯ 本人座右铭 :   欲达高峰,必忍其痛;欲戴王冠,必承其重。 👑💎💎👑

    2024年01月16日
    浏览(39)
  • 二叉树经典算法题目

    省略 输入一棵二叉树的根节点,求该树的深度。从根节点到叶节点依次经过的节点(含根、叶节点)形成树的一条路径,最长路径的长度为树的深度。 例如: 给定二叉树 [3,9,20,null,null,15,7] , 返回它的最大深度 3 。 思路:递归,当前数的深度等于左子数和右子树其中最大深

    2024年02月09日
    浏览(55)
  • 【C++】-多态的经典题目

    💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C++ 动态规划算法🎄 如 果 你 喜 欢 作 者 的 文 章 ,就 给 作 者 点 点 关 注 吧! 今天博主专门出一篇继承和多态的相关的题目,为了就是

    2024年02月15日
    浏览(34)
  • 接口经典题目

    ​ White graces:个人主页 🙉专栏推荐:《Java入门知识》🙉 🙉 内容推荐:继承与组合:代码复用的两种策略🙉 🐹今日诗词: 人似秋鸿来有信,事如春梦了无痕。 🐹 目录 🌸一.题目🌸 🌸二.创建接口和类文件🌸 🍎1.USB接口🍎 🍎2.Mouse类🍎 🍎3.Keyboard类🍎 🌸三.笔记本类🌸

    2024年02月11日
    浏览(33)
  • 链表经典算法OJ题目

    直接在原链表里删除val元素,然后让val前一个结点和后一个节点连接起来。 这时我们就需要3个指针来遍历链表: pcur  —— 判断节点的val值是否于给定删除的val值相等 prev ——保存pcur的前一个节点,为删除节点后,连接pcur之后的节点做准备 del —— 保存pcur之后的一个节点

    2024年04月26日
    浏览(33)
  • 【数据结构】二叉树经典题目

    相信大部分人看了题目描述之后,都会和我一样一脸的懵逼。直到我看到了一个描述才恍然大悟 分为3种情况: 左右都为空 --省略 右为空,左不为空 – 省略 左为空,右不为空–不省略 这里复习一下二叉树的前序遍历、中序遍历、和后序遍历 前序的结果是:ABDEGCF 中序的结

    2024年02月10日
    浏览(53)
  • 算法提高:贪心策略的11个经典题目

    目录 字典序最小 零钱问题 股票问题(最多持有一支,可以买卖无限次) 小船过河 任务调度器 摆动序列 最小区间 跳跃游戏 II 分糖果 通配符匹配 拼接最大数 题目 给定一个由字符串组成的数组strs,必须把所有的字符串拼接起来,返回所有拼接结果中,字典序最小的结果。

    2024年02月13日
    浏览(45)
  • 一维动态规划经典力扣题目(一)

    目录 题一:斐波那契数列 题目二:最低票价 题三:解码方法 递归方法是2的n次方的时间复杂度。 递归代码: 带有缓存的递归,会使时间复杂度得到大幅度优化。 时间复杂度为O(n)。 缓存即记录中间值         优化的方法:         代码:         代码:

    2024年02月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包