当前位置: 首页 > news >正文

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

各位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.lryc.cn/news/28977.html

相关文章:

  • 带你看懂RuoYi动态数据源切换
  • 家有女儿必看:盲目的和青春期女儿较劲,不如掌握4个沟通技巧
  • 【VC 7/8】vCenter Server 基于文件的备份和还原Ⅰ——基于文件的备份和还原的注意事项和限制
  • 【ROS学习笔记10】ROS中配置自定义Cpp头文件和导入自定义Python库
  • svn 分支(branch)和标签(tag)管理
  • @Transactional详解
  • 机器学习:Transformer
  • pytorch-模型构建,参数访问,模型存取API接口,对比学习
  • javaEE 初阶 — 数据链路层中的以太网数据帧
  • 泼辣修图Polarr5.11.4 版,让你的创意无限延伸
  • leetcode打卡-深度优先遍历和广度优先遍历
  • 【0177】Linux中POSIX信号量实现机制
  • 跳表--C++实现
  • c#:System.Text.Json 的使用一
  • kaggle数据集下载当中所遇到的问题
  • TEX:高阶用法
  • UML 类图
  • 项目实战典型案例1——redis只管存不管删除 让失效时间删除的问题
  • @RequestParam和@PathVariable的用法与区别
  • 【大数据 AI 人工智能】数据科学家必学的 9 个核心机器学习算法
  • IronPDF for .NET 2023.2.4 Crack
  • 3.4-前端的10个问题
  • 开发手册——一、编程规约_9.其他
  • 23.3.4打卡 AtCoder Beginner Contest 291(Sponsored by TOYOTA SYSTEMS)A~E
  • Gem5模拟器,一些运行的小tips(十一)
  • 【JAVA】List接口
  • Hbase RegionServer的核心模块
  • 【Java开发】JUC进阶 01:Lock锁详解
  • 关于登录校验的解决方案以及原理(回顾知识点)--项目开发那点事(自问自答版本)
  • 【数据结构】邻接矩阵和邻接图的遍历