C语言刷题(4)——“C”

news/2024/9/17 13:46:55/

各位CSDN的uu们你们好呀,今天小雅兰的内容又到了我们的复习啦,那么还是刷题噢,话不多说,让我们进入C语言的世界吧


BC55 简单计算器 

BC56 线段图案

BC57 正方形图案

BC58 直角三角形图案

BC59 翻转直角三角形图案

BC60 带空格直角三角形图案

BC61 金字塔图案

BC62 翻转金字塔图案

BC63 菱形图案

BC64 K形图案

BC65 箭形图案

BC66 反斜线形图案

BC67 正斜线形图案

BC68 X形图案

BC69 空心正方形图案

BC70 空心三角形图案


题目仍然来源于牛客网

编程语言初学训练营_在线编程+题解_牛客题霸_牛客网


#include <stdio.h>
//精度尽量保持高
//这个题使用float精度不满足要求
int main()
{double n1 = 0.0;double n2 = 0.0;char op = 0;while (scanf("%lf%c%lf", &n1, &op, &n2) != EOF){switch (op){case '+':printf("%.4lf+%.4lf=%.4lf", n1, n2, n1 + n2);break;case '-':printf("%.4lf-%.4lf=%.4lf", n1, n2, n1 - n2);break;case '*':printf("%.4lf*%.4lf=%.4lf", n1, n2, n1 * n2);break;case '/':{if (n2 == 0.0){printf("Wrong!Division by zero!\n");}else{printf("%.4lf/%.4lf=%.4lf", n1, n2, n1 / n2);}break;}default:printf("Invalid operation!\n");break;}}return 0;
}

1. 多组输入

2. 按照格式接收,按照要求编写代码就行

3. switch语句

#include <stdio.h>
int main()
{int n=0;while(scanf("%d ",&n)!=EOF){int i=0;for(i=0;i<n;i++){printf("*");}printf("\n");}return 0;
}

1. 多组输入

2. 每次打印一个*,按照输入的个数打印后换行就行

 

 

#include <stdio.h>int main() {int n = 0;while (scanf("%d", &n) != EOF){int i = 0;//确定行数for (i = 0; i < n; i++){int j = 0;//每一行的打印,打印n组*+空格for (j = 0; j < n; j++){printf("* ");}printf("\n");}}return 0;
}

1. 多组输入

2. 每组是由n组*+空格组成

#include<stdio.h>int main()
{int n = 0;while(scanf("%d",&n) !=EOF){int i = 0;//控制行数for(i=1;i <=n;i++){//每一行int j = 0;for(j=1;j <=i;j++){printf("* ");}printf("\n");}}return 0;
}

1. 多组输入

2. 每一行的输出要计算清楚

 

 

#include <stdio.h>
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = n; i >= 1; i--){int j = 0;for (j = i; j >= 1; j--){//这里注意空格printf("* ");}printf("\n");}}return 0;
}

1. 多组输入

2. 每两个*中间有空格,要注意

3. 控制好一行输出的内容

#include <stdio.h>
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;//行数控制for (i = 0; i < n; i++){//空格int j = 0;for (j = 0; j < n - 1 - i; j++){printf("  ");}//*for (j = 0; j <= i; j++){printf("* ");}printf("\n");}}return 0;
}

 另一种写法:

 在红色三角范围内的每个坐标上,横纵坐标之和小于n-1。

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;int j = 0;//行数for (i = 0; i < n; i++){//一行for (j = 0; j < n; j++){//行和列的和//这里可以把行数和列数标出来就能看明白if (i + j < n - 1){printf("  ");}else{printf("* ");}}printf("\n");}}return 0;
}

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){//一行int j = 0;//空格for (j = 0; j < n - 1 - i; j++){printf(" ");}//*for (j = 0; j <= i; j++){printf("* ");}printf("\n");}}return 0;
}

1. 多组输入

2. 每一行的前边应该是空格,后边是*+空格,控制好个数就行

 

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){//一行int j = 0;for (j = 0; j < i; j++){printf(" ");}for (j = 0; j < n - i; j++){printf("* ");}printf("\n");}}return 0;
}

1. 多组输入

2. 控制好行数,控制好每一行前面的空格数

 

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;//上for (i = 0; i < n; i++){//一行int j = 0;for (j = 0; j < n - i; j++){printf(" ");}for (j = 0; j <= i; j++){printf("* ");}printf("\n");}//下for (i = 0; i <= n; i++){//一行int j = 0;for (j = 0; j < i; j++){printf(" ");}for (j = 0; j <= n - i; j++){printf("* ");}printf("\n");}}return 0;
}

1. 首先把菱形的打印分为上下2个部分

2. 上下分别控制好行数和空格的个数

3. 多组输入

#include <stdio.h>//这个题好坑int main()
{int n = 0;//如果输入的是n,其实每行打印n+1组字符(*和空格)while (scanf("%d", &n) != EOF){int i = 0;for (i = n; i >= 0; i--){int j = 0;for (j = 0; j <= i; j++){printf("* ");}//*的后面还有空格-这个比较坑for (j = i; j < n; j++){printf(" ");}printf("\n");}for (i = 1; i <= n; i++){int j = 0;for (j = 0; j <= i; j++){printf("* ");}//*的后边还有空格-这个比较坑for (j = i; j < n; j++){printf(" ");}printf("\n");}}return 0;
}

1. 多行输入

2. 图形的打印分为上下2个部分

3. 每一行的打印完,后边还有空格,可能牛客网的题目处理不严谨,在题目中也没体现,怎么都做不出来,不过选中输出样例,会发现后边有空格。

#include <stdio.h>int main()
{int n = 0;while(scanf("%d",&n) !=EOF){//上n行int i = 0;for (i = n; i > 0; i--){int j = 0;for (j = 0; j < i; j++){printf("  ");}for (j = 0; j <= n - i; j++){printf("*");}printf("\n");}//下n+1行for (i = n + 1; i > 0; i--){int j = 0;for (j = 0; j < n + 1 - i; j++){printf("  ");}for (j = 0; j < i; j++){printf("*");}printf("\n");}}return 0;
}

1. 多组输入

2. 图形分为上下2个部分打印

3. 每一行前面是空格,后边是*(前面2个空格为1组)

#include <stdio.h>
//方法1-传统求解方式
int main()
{int n = 0;while(scanf("%d",&n) !=EOF){int i = 0;for(i=0;i<n;i++){//空格int j = 0;for(j=0;j<i;j++){printf(" ");}//*printf("*");//注意*后边的空格for(j=i+1;j<n;j++){printf(" ");}printf("\n");}}return 0;
}

 另一种方法:

#include <stdio.h>
//找出规律
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < n; j++){if (i == j)printf("*");elseprintf(" ");}printf("\n");}}return 0;
}

1. 多组输入

2. 控制好每行的打印,前面是空格,后边是*

3. *的后边还有空格,一行要打印够n和字符的

4. 方法2找出打印*的行号和列号的规律是 i==j

#include <stdio.h>
//代码1
int main()
{int n = 0;while(scanf("%d",&n) != EOF){int i = 0;//行for(i=0;i<n;i++){//空格int j = 0;for(j=0;j<n-1-i;j++){printf(" ");}//*printf("*");//空格for(j=n-i;j<n;j++){printf(" ");}printf("\n");}}return 0;
}

 另一种方法:

#include <stdio.h>
//代码2
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 0; i < n; i++){int j = 0;for (j = 0; j < n; j++){if (i + j == n - 1)printf("*");elseprintf(" ");}printf("\n");}}return 0;
}

1. 多组输入

2. 控制好每行的打印,前面是空格,后边是*

3. *的后边还有空格,一行要打印够n和字符的

4. 方法2找出打印*的行号和列好的规律是i+j == n-1

 

#include <stdio.h>
int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i == j)printf("*");else if (i + j == n - 1)//因为行和列是从0开始的printf("*");elseprintf(" ");}printf("\n");}}return 0;
}

1. 多组输入

2. 找出打印*的打印空格的规律,直接按照规律实现就行

 

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;int j = 0;for (i = 0; i < n; i++){for (j = 0; j < n; j++){if (i == 0 || i == n - 1)printf("* ");else if (j == 0 || j == n - 1)printf("* ");elseprintf("  ");}printf("\n");}}return 0;
}

1. 多行输入

2. 找出打印*的规律,剩余的打印空格,直接打印就行

#include <stdio.h>int main()
{int n = 0;while (scanf("%d", &n) != EOF){int i = 0;for (i = 1; i <= n; i++){int j = 0;for (j = 1; j <= n; j++){if ((i == j) || (j == 1) || (i == n)){printf("* ");}else{printf("  ");}}printf("\n");}}return 0;
}

1. 多组输入。

2. 找出打印*的规律,然后直接按照要求打印就行。


好啦,小雅兰今天的复习内容就到这里啦,今天做的一般都是图案题,之后还要继续加油呀!!!

 


http://www.ppmy.cn/news/30017.html

相关文章

蚁群算法优化问题

%%%%%%%%%%%%蚁群算法解决 TSP 问题%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%初始化%%%%%%%%%%%%%%%%%%% clear all; %清除所有变量 close all; %清图 clc; %清屏 m 50; %蚂蚁个数 Alpha 1; %信息素重要程度参数 Beta 5; %启发式因子重要程度参数 Rho 0.1; %信息素蒸发系数 G 20…

嵌入式学习笔记——STM32硬件基础知识

STM32开发硬件知识前言STM32最小系统电源电路晶振电路复位电路BOOT选择电路调试接口电路其他电路本文重点本文参考博客链接前言 上一篇中我们重点是讲了一下怎么搭建开发环境以及怎么下载烧录的过程&#xff0c;这都是解决的电脑端的开发环境问题&#xff0c;还没有到实际的开…

【C++初阶】list的使用

大家好我是沐曦希&#x1f495; 文章目录一、前言二、构造三、迭代器四、增删查改1.头插头删2.尾插尾删3.查找和插入4.删除五、其他成员函数1.排序和去重2.splice和remove3.resize一、前言 list本质是带头双向循环链表&#xff0c;本文只对list的一些常用接口进行说明&#xf…

用逻辑回归制作评分卡

目录 一.评分卡 二.导库&#xff0c;获取数据 三.探索数据与数据预处理 1.去除重复值 2.填补缺失值 3.描述性统计处理异常值 4.为什么不统一量纲&#xff0c;也不标准化数据分布 5.样本不均衡问题 6.分训练集和测试集 三.分箱 1.分多少个箱子才合适 2.分箱要达成什么…

真香,Grafana开源Loki日志系统取代ELK?

一、Loki是什么&#xff1f; Loki是由Grafana Labs开源的一个水平可扩展、高可用性&#xff0c;多租户的日志聚合系统的日志聚合系统。它的设计初衷是为了解决在大规模分布式系统中&#xff0c;处理海量日志的问题。Loki采用了分布式的架构&#xff0c;并且与Prometheus、Graf…

51单片机入门————数码管显示

我们在马路上看到的红绿灯&#xff0c;就是由数码管来实现的&#xff0c;就是其中可能加入了一些延时和转换数码管是通过控制138译码器与74HC245来控制数码管的亮灭与数字的显示电路原理图我们先讨论一个数码管数码管有共阳极和共阴极&#xff0c;我们现在使用的STC89C52是共阴…

Linux用户空间与内核空间通信(Netlink通信机制)

一&#xff0c;什么是Netlink通信机制 Netlink是linux提供的用于内核和用户态进程之间的通信方式。但是注意虽然Netlink主要用于用户空间和内核空间的通信&#xff0c;但是也能用于用户空间的两个进程通信。只是进程间通信有其他很多方式&#xff0c;一般不用Netlink。除非需要…

Cadence Allegro 导出Bill of Material Report (Condensed)详解

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,Bill of Material Report (Condensed)作用3,Bill of Material Report (Condensed)示例4,Bill of Material Report (Condensed)导出方法4.1,方法14.2,方法2,

第十三届蓝桥杯

这里写目录标题一、刷题统计&#xff08;ceil函数返回的是等值于某最小整数的浮点值&#xff0c;不强制转换回int就wa&#xff0c;没错就连和int整数相加都wa二、修剪灌木&#xff08;主要应看清楚会调转方向三、统计子矩阵&#xff08;前缀和滑动窗口⭐&#xff09;四、[积木画…

十大经典排序算法【快速了解】

文章目录一、算法分类二、经典排序算法总览三、算法复杂度四、代码实现一、算法分类 十种常见排序算法可以分为两大类&#xff1a; 比较类排序&#xff1a; 通过比较来决定元素间的相对次序由于其时间复杂度不能突破O(nlogn)&#xff0c;因此也称为非线性时间比较类排序。 非…

xgboost: 分割查找算法:贪婪算法、分桶算法

1、Basic Exact Greedy Algorithm 树学习的关键问题之一是找到最好的分割&#xff0c;如Eq(7)所示。 贪婪算法:分割查找算法枚举所有特征上的所有可能的分割。精确的贪婪算法如Alg. 1所示。为了高效地完成这一任务&#xff0c;算法必须首先根据特征值对数据进行排序&#xff…

配置本地 python GEE、geemap环境

1.安装anconda 百度搜索anconda清华镜像&#xff0c;从清华镜像中选择最新的anconda安装包&#xff0c;国内镜像网站下载速度较快&#xff0c;如果从国外官网下载速度相当慢&#xff0c;详细安装教程请参考&#xff1a; anconda安装教程https://blog.csdn.net/lwbCUMT/article…

MyBatis高频面试专题

一、介绍下MyBatis中的工作原理 1。介绍MyBatis的基本情况&#xff1a;ORM 2。原理&#xff1a; MyBatis框架的初始化操作处理SQL请求的流程 1.系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在 Configuration 对象 Testpublic void test1(…

JavaScript(JS)

一、三种引入方式&#xff1a; 1、内部js 通过script标签嵌入到html里面 <script>alert(hello);</script> 2、外部js 写成一个单独的.js文件&#xff0c;让html引入进来 <script src"app.js"></script> 3、行内js 直接写到html内部 &…

SpringMVC文件上传、下载、国际化配置

Java知识点总结&#xff1a;想看的可以从这里进入 目录3.6、文件上传、下载3.6.1、文件上传3.6.2、文件下载3.7、国际化配置3.6、文件上传、下载 3.6.1、文件上传 form 表单想要具有文件上传功能&#xff0c;其必须满足以下 3 个条件。 form 表单的 method 属性必须设置为 p…

最近一年我都干了什么——反思!!

过去一年不管是学习方式还是心态上都和以往有了许多不同的地方&#xff0c;比较昏昏沉沉。最近慢慢找到状态了&#xff0c;就想赶紧记录下来。 学习 在学习新技术的过程中开始飘了&#xff0c;总感觉有了一些开发经验后就觉得什么都不用记&#xff0c;知道思路就行遇到了现场百…

Java高效率复习-SpringMVC[SpringMVC-2]

SpringMVC获取请求参数 SpringMVC获取请求参数的两种方式↓ 通过ServletAPI获取请求参数 将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象 通过request的API——getParameter(String s)方法来获取…

2023王道考研数据结构笔记第四章串

第四章 串 4.1 串的定义 4.1.1 串的相关概念 串&#xff1a;即字符串&#xff08;String&#xff09;是由零个或多个字符组成的有限序列。一般记为S‘a1a2…an’ (n>0) 其中S是串名&#xff0c;单引号&#xff08;注&#xff1a;有的地方用双引号&#xff0c;如Java、C&am…

用Python Flask为女朋友做一个简单的网站(附可运行的源码)

&#x1f31f;所属专栏&#xff1a;献给榕榕&#x1f414;作者简介&#xff1a;rchjr——五带信管菜只因一枚&#x1f62e;前言&#xff1a;该专栏系为女友准备的&#xff0c;里面会不定时发一些讨好她的技术作品&#xff0c;感兴趣的小伙伴可以关注一下~&#x1f449;文章简介…

【数据结构初阶】详解“树”

目录 前言 1.树概念及结构 &#xff08;1&#xff09;树的概念 &#xff08;2&#xff09;树的名词介绍 &#xff08;3&#xff09;树的表示 ​编辑 2.二叉树概念及结构 &#xff08;1&#xff09;概念 &#xff08;2&#xff09;特殊的二叉树 &#xff08;3&#xff0…