#5C OJ练习五#

news/2025/4/1 4:36:33/

1.空心正方形图案

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; j++){if (i == 0 || i == n - 1)printf("* ");else if (j == 0 || j == n - 1)printf("* ");elseprintf("  ");}printf("\n");}}return 0;
}

4°运行结果

2.空心三角形图案

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; j++){if (i == n - 1 || j == 0 || i == j)//选择行列打印*  {printf("* ");}else{printf("  ");}}printf("\n");}}return 0;
}

4°运行结果

3.有序序列插入一个数

1°题目链接

链接

2°思路

定义一个足够长的数组

输入m为插入的数

遍历数组

从后往前比较

如果arr[i]>m 就把这个元素往后拿一个arr[i+1]=arr[i]

如果arr[i]<m 就把m赋给arr[i+1]  arr[i+1]=m

还有一种情况

就是遍历完后没有插入

只有m小于数组所有元素才成立

这时把arr[0]=m

3°实现

#include<stdio.h>
int main()
{int n = 0;int arr[51] = { 0 };int m = 0;scanf("%d", &n);int i = 0;for (i = 0; i < n; i++){scanf("%d", &arr[i]);}scanf("%d", &m);for (i = n - 1; i >= 0; i--)//从后往前 比较 {if (arr[i] > m){arr[i + 1] = arr[i];//往后拿一个 }else{arr[i + 1] = m;break;}}if (i < 0)//比所有元素都小 {arr[0] = m;}for (i = 0; i < n + 1; i++){printf("%d ", arr[i]);}return 0;
}

4°运行结果

 

4.筛选法求素数

1°题目链接

链接

2°思路

用筛选法求n以内的素数。筛选法求解过程为:将2~n之间的正整数放在数组内存储,将数组中2之后的所有能被2整除的数清0,再将3之后的所有能被3整除的数清0 ,以此类推,直到n为止。数组中不为0的数即为素数。

先把2~n之间的正整数放到一个数组中

再写一个外循环代表2~n的数

再在外循环内部写一个内循环

把之前2~n的正整数的数组进行遍历

遍历中去试除

试除成功就把这个元素变为0

走完之后

再次遍历数组

如果arr[i]!=0就打印

arr[i]==0就计数

3°实现

#include <stdio.h>
int main()
{int n=0;while(~scanf("%d",&n)){//int arr[n+1];int arr[101];int i=0;for(i=2;i<=n;i++){arr[i]=i;}int j=0;for(j=2;j<=n;j++){int k=0;for(k=j+1;k<=n;k++){if(arr[k]%j==0){arr[k]=0;}}}int count=0;for(i=2;i<=n;i++){if(arr[i]!=0)printf("%d ",arr[i]);elsecount++;}printf("\n%d\n",count);}return 0;
}

4°运行结果

5.图像相似度

1°题目链接

链接

2°思路

输入两个m行n列的数组

如果对应的元素相等就计数

最后100.0*count/(m*n)就可以得到百分比

保留两位小数

3°实现

#include <stdio.h>
int main()
{int m = 0;int n = 0;int arr1[100][100] = { 0 };int arr2[100][100] = { 0 };scanf("%d %d", &m, &n);int i = 0;int j = 0;int count = 0;for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &arr1[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){scanf("%d", &arr2[i][j]);}}for (i = 0; i < m; i++){for (j = 0; j < n; j++){if (arr1[i][j] == arr2[i][j]){count++;}}}printf("%.2lf\n", 100.0 * count / (m * n));return 0;
}

4°运行结果

 #5C OJ练习五#完


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

相关文章

软件测试的5C标准

软件测试5C标准 Correct(准确)&#xff1a;每个组成部分的描述准确&#xff0c;不会引起误解 Clear(清晰)&#xff1a;每个组成部分的描述清晰&#xff0c;易于理解 Concise(简洁)&#xff1a;只包含必不可少的信息&#xff0c;不包括任何多余的内容&#xff1b; Complete(…

%5C爆库

当我们暴库失败的时候不妨试试利用%5c绕过asp的验证 废话少说&#xff0c;看下面的代码&#xff1a; <!--#INCLUDE file"conn.asp" --> <% guest_usertrim(request("guest_user")) guest_passwordtrim(request("guest_password&qu…

C.5

//1、随机产生20个[10 , 50]的正整数存到数组中&#xff0c;并求数组中的所有元素最大值、最小值、平均值以及各元素之和,及第二大值。 /* int a[20] {0}; for (int i 0; i < 20; i ) { a[i] arc4random() % 41 10; printf("%d ", a[i]); } int max 0, min …

5.c

1.完成猜数字游戏。 代码如下&#xff1a; #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <time.h> int main() {srand((unsigned int)time(NULL));int a ;int guess 0;guess rand() % 100 1;//printf("%d\n&…

商业竞争算法

前言&#xff1a;为什么会想起来写这块呢&#xff1f;可能与我目前所处的地域城市有关系吧&#xff0c;也可能与我见过的公司差异有关。 商业竞争算法 什么是商业竞争算法呢&#xff1f;简言之&#xff1a;商战&#xff0c;能够在竞争中产生优势的&#xff0c;且不易被替代的算…

【java 基础三 】- 正则表达式、枚举、equals等

一 枚举 1.1 定义 Java枚举是一种特殊的数据类型&#xff0c;用于表示有限个预设的值。它在Java语言中是一种类&#xff08;class&#xff09;类型&#xff0c;但又比普通的类类型多了些特殊的约束&#xff0c;这些约束使得枚举类型更加简洁、安全和便捷。枚举类型的名称必须…

华为网络设备查看风扇状态命令

描述&#xff1a;华为网络设备查看风扇状态命令 命令&#xff1a; display device fan

华为网络设备CPU和内存占用率检查命令方法

描述&#xff1a;华为网络设备CPU和内存占用率检查命令方法 方法&#xff1a; display cpu display memory