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

news2024/11/19 5:03:07

各位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("*");
				else

					printf(" ");
			}
			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("*");
				else

					printf(" ");
			}
			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("*");
				else

					printf(" ");
			}
			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("* ");
				else

					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 = 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.coloradmin.cn/o/388344.html

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

相关文章

Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)

机器学习的分类问题常用评论指标有&#xff1a;准确率、精确度、召回率和F1值&#xff0c;还有kappa指标 。 每次调包去找他们的计算代码很麻烦&#xff0c;所以这里一次性定义一个函数&#xff0c;直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值&a…

Camtasia2023电脑屏幕录像视频编辑录屏软件

Camtasia是一款专业的录屏软件&#xff0c;由TechSmith开发。它旨在帮助用户创建高质量的视频内容&#xff0c;包括演示、培训视频、演讲录像、教程等等。 Camtasia适合于需要制作视频教程、软件演示、游戏录像等内容的个人和企业用户。例如&#xff0c;软件开发人员可以使用它…

JUC并发编程与源码分析笔记10-聊聊ThreadLocal

ThreadLocal简介 恶心的大厂面试题 ThreadLocal中ThreadLocalMap的数据结构和关系ThreadLocal的key是弱引用&#xff0c;这是为什么ThreadLocal内存泄漏问题你知道吗ThreadLocal中最后为什么要加remove方法 是什么 ThreadLocal提供线程局部变量。这些变量与正常的变量不同&…

基于神经辐射场(Neural Radiance Fileds, NeRF)的三维重建- 简介(1)

Nerf简介 Nerf&#xff08;neural Radiance Fileds&#xff09; 为2020年ICCV上提出的一个基于隐式表达的三维重建方法&#xff0c;使用2D的 Posed Imageds 来生成&#xff08;表达&#xff09;复杂的三维场景。现在越来越多的研究人员开始关注这个潜力巨大的领域&#xff0c;也…

十大排序(C++版)

测试排序的题目&#xff1a; 912. 排序数组 - 力扣&#xff08;LeetCode&#xff09; 堕落的做法&#xff1a; class Solution { public:vector<int> sortArray(vector<int>& nums) {sort(nums.begin(),nums.end());return nums;} };视频推荐&#xff1a; …

洛谷:P1554 梦中的统计 JAVA

思路&#xff1a;定义一个长度为10的数组&#xff0c;数组下标代表数组元素的数字&#xff0c;比如arr[0]代表数字0.用一个for循环&#xff0c;对每个数先取余再取整&#xff0c;知道取整得到的数为0&#xff0c;说明该数字已经被拆解完了。今天又学了一个输入&#xff0c;原来…

2020蓝桥杯真题美丽的2(填空题) C语言/C++

题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝特别喜欢 2&#xff0c;今年是公元 2020 年&#xff0c;他特别高兴。 他很好奇&#xff0c;在公元 1 年到公元 2020 年&#xff08;包含&#xff09;中&#xff…

论文投稿指南——中文核心期刊推荐(电影、电视艺术)

【前言】 &#x1f680; 想发论文怎么办&#xff1f;手把手教你论文如何投稿&#xff01;那么&#xff0c;首先要搞懂投稿目标——论文期刊 &#x1f384; 在期刊论文的分布中&#xff0c;存在一种普遍现象&#xff1a;即对于某一特定的学科或专业来说&#xff0c;少数期刊所含…

73. python第三方库安装教程(超详细)

73. python第三方库安装教程&#xff08;超详细&#xff09; 文章目录73. python第三方库安装教程&#xff08;超详细&#xff09;1.知识回顾2. openpyxl 库的作用3. 第三方库的安装步骤【警告内容释义】4. 更新pip5. pip 常用命令1. 什么是pip2. pip --version 查看 pip 版本和…

车载雷达实战之Firmware内存优化

内存&#xff08;Memory&#xff09;是计算机中最重要的部件之一&#xff0c;计算机运时的程序以及数据都依赖它进行存储。内存主要分为随机存储器&#xff08;RAM&#xff09;,只读存储器&#xff08;ROM&#xff09;以及高速缓存&#xff08;Cache&#xff09;。仅仅雷达的原…

树莓派Pico W无线WiFi开发板使用方法及MicroPython编程实践

树莓派Pico W开发板是树莓派基金会于2022年6月底推出的一款无线WiFi开发板&#xff0c;它支持C/C和MicroPython编程。本文介绍树莓派Pico W无线WiFi开发板的使用方法及MicroPython编程示例&#xff0c;包括树莓派Pico W开发板板载LED使用及控制编程示例&#xff0c;Pico W开发板…

Spring——什么是IOC?

一、原则高内聚、低耦合二、什么是IOC&#xff1f;控制反转&#xff0c;把对象创建和对象之间的调用过程&#xff0c;交给spring进行管理三、使用IOC的目的是什么&#xff1f;降低耦合&#xff08;谁和谁的耦合&#xff1f;&#xff1f;如何降低的&#xff1f;&#xff09;原来…

openai-chatGPT的API调用异常处理

因为目前openai对地区限制的原因&#xff0c;即使设置了全局代理使用API调用时&#xff0c;还是会出现科学上网代理的错误问题。openai库 0.26.5【错误提示】&#xff1a;raise error.APIConnectionError(openai.error.APIConnectionError: Error communicating with OpenAI: …

泛型详解.

1 泛型的引入 问题&#xff1a;我们之前实现过的顺序表&#xff0c;只能保存 int 类型的元素&#xff0c;如果现在需要保存 指向 Person 类型对象的引用的顺序表&#xff0c;请问应该如何解决&#xff1f;如果又需要保存指向 Book 对象类型的引用呢&#xff1f; 之前写的顺序表…

红黑树-随记

文章目录1.为什么hashmap用红黑树不用二叉树和平衡二叉树1.1 二叉树&#xff08;Binary Search Tree&#xff09;1.2 红黑树&#xff08;Red Black Tree&#xff09;1.3 平衡二叉树&#xff08;Balence Binary Tree&#xff09;也称AVT2.为什么mysql用b数&#xff0c;不用B数或…

Windows程序员学习Linux环境下VI(VIM)编辑器的使用方法

我是荔园微风&#xff0c;作为一名在IT界整整25年的老兵&#xff0c;今天我们来重新审视一下Windows程序员如何学习Linux环境知识。由于很多程序在Windows环境下开发好后&#xff0c;还要部署到Linux服务器上去&#xff0c;所以作为Windows程序员有必要学习Linux环境的知识。VI…

为什么KT6368A双模蓝牙芯片焊到板子上,没反应没收到芯片TX上电返回信息呢

目录 一、问题简介 为什么我把KT6368A芯片焊到板子上面&#xff0c;没有收到芯片TX的脚上电返回信息呢&#xff0c;而KT6368A芯片的2脚一直是2点多v的电压&#xff0c;换了好几个芯片都是这样 二、详细说明 一、问题简介 为什么我把KT6368A芯片焊到板子上面&#xff0c;没有…

QWidgetTable获取选中多行数据

QWidgetTable获取选中的多行数据获取选中行的行编号和打印指定第几列功能快捷键插入链接与图片创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能&#xff0c;丰富你的文章UML 图表FLowchart流…

buu [NPUCTF2020]这是什么觅 1

题目描述&#xff1a; 就一个这种文件&#xff0c;用记事本打开后&#xff1a; 题目分析&#xff1a; 打开后就一串看不懂的东西&#xff0c;想想这个东西曾经在 010editor 或 winhex中出现过&#xff08;右端&#xff09;既然如此那么我们就用它打开&#xff0c;得到&#…

使用 JaCoCo 生成测试覆盖率报告

0、为什么要生成测试覆盖率报告 在我们实际的工作中&#xff0c;当完成程序的开发后&#xff0c;需要提交给测试人员进行测试&#xff0c;经过测试人员测试后&#xff0c;代码才能上线到生产环境。 有个问题是&#xff1a;怎么能证明程序得到了充分的测试&#xff0c;程序中所…