FaFu--练习复盘--1

1、输出图形及二维数组应用

1.1.输出图形

描述

        编写程序打印n行如下图形,其中1≤n≤500。

输入用例   

        7                           

输出用例 

具体实现

#include"stdio.h"
int main(){int n,i,j;scanf("%d",&n);for(i = 1; i<= n; i++){for (j = 1; j<= n-i; j++)printf(" ");for(j =1 ;j<=i; j++)printf("%c",'A'+(n-j)%26);for(j =1 ;j<=i-1; j++)printf("%c",'A'+(n+j-i)%26);printf("\n");}return 0;
}

  

1.2.旋转数字

描述

        编写程序打印n行如下菱形图形(1≤n≤99),图形有n行n列个整数,图形从第1行的中间开始,数字分别是1,2,……n*n-1,n*n,并且顺时针向中间转入,如果1个数据项宽度不足n*n位,用0补足到n*n位。

 输入用例

        7

输出用例

       

具体实现

#include "stdio.h"
const int N0 = 100;
struct Dir{int row,col;}dir[4] = {{1,1},{1,-1},{-1,-1},{-1,1}};int a[2*N0][2*N0] = {0};int main(){int n,i,j,m;scanf("%d",&n);int row,col,rowTest,colTest,d=0;row = 1;col = n;m = 0;i = n*n;while(i){i/=10;m++;}for(i = 1; i<= n*n; i++){a[row][col] = i;rowTest = row + dir[d].row;colTest = col + dir[d].col;if(rowTest < 1 || rowTest >= 2*n || colTest < 1 || colTest >= 2*n || a[rowTest][colTest] != 0){d = (d+1)%4;rowTest = row + dir[d].row;colTest = col + dir[d].col;}row = rowTest;col = colTest;}for( i = 1; i < 2*n ; i++){for (j = 1; j< 2*n; j++)if(i<=n && j<n+i || i>n && j<3*n-i){if(a[i][j] == 0)printf("%*c",m,' ');elseprintf("%0*d",m,a[i][j]);}printf("\n");        }return 0;
}

1.3求和

描述

        有1个n×n的矩阵,从左上到右下称为主斜线(倾角135º),从右上到左下称为次斜线(倾角45º),在主斜线上最大,次斜线上最小的元素称为该矩阵的斜线鞍点,求出该矩阵所有斜线鞍点的和。

        如5×5的矩阵:元素7为上面矩阵的一个斜线鞍点,元素10和19也是上面矩阵的斜线鞍点。

输入用例

5

3        2        5        98        10

44     12        1       12         8 

67     61        45      7         19 

12     21        33      56        3

35     36        78      98        19    

输出用例

36

具体实现

#include "stdio.h"
const int N0 = 105;
int a[N0][N0];
int n;
void readData(){int i,j;scanf("%d",&n);for(i =1 ; i<=n ; i++)for(j=1; j<=n; j++)scanf("%d",&a[i][j]);
}
bool masterMax(int i, int j){int p,q;for(p=1; p<=n ; p++)for(q=1; q<=n; q++)if(p-q == i-j && a[p][q] > a[i][j])return false;return true;
}
bool slaverMin(int i,int j){int p,q;for(p=1; p<=n ; p++)for(q=1; q<=n; q++)if(p+q == i+j && a[p][q] < a[i][j])return false;return true;
}
int main(){int i,j,total;readData();for(total = 0, i=1; i<=n; i++)for(j=1; j<=n; j++)if(masterMax(i,j) && slaverMin(i,j))total += a[i][j];printf("%d\n",total);return 0;
}

2、数组与结构体应用

 2.1.数组中的元素查找

描述

        一维数组a中有20个整数,编写程序在数组a中查找元素q,如果找到第一个等于q的元素,则输出该元素在数组中的下标;如果没找到则输出-1。

输入用例

5

3 21 5 98 44 12 64 7 66 96 76 67 61 2 13 16 9 78 56 69

输出用例

2

具体实现

#include <stdio.h>
#include<math.h>
int main (){int a[20];int i,q,flag=0;scanf("%d",&q);for (i=0;i<20;i++) scanf("%d",&a[i]);for(i=0;i<20;i++)if (a[i]==q){break;}	if (i<20) printf("%d",i);else printf("-1");return 0;} 

2.2.多重元素下标查找

描述

        一维数组a中有10个整数,编写程序在数组a中查找所有值等于q的元素,并输出这些元素在数组中的下标;如果没找到则输出-1。

输入用例

58

57 89 76 35 58 65 58 73 58 47

输出用例

4 6 8 

具体实现 

#include <stdio.h>
#include<math.h>
int main (){int a[10];int i,q,flag=0;scanf("%d",&q);for (i=0;i<10;i++) scanf("%d",&a[i]);for(i=0;i<10;i++)if (a[i]==q){printf("%d ",i);flag++;}	if (flag) ;//这有一个空语句else printf("-1");return 0;} 

2.3.极端偏差成绩查找

描述

        输入某班级n(0<n<100)个学生的成绩到数组a中,找出所有成绩中与平均值绝对偏差最大的学生成绩,并输出该学生的成绩。

输入用例

10

23 21 5 17 19 42 6 10 8 31

输出用例

42

#include <stdio.h>
#include<math.h>
int main ()
{int a[100];int i,n,c,k,sum=0,avg;scanf("%d",&n);for (i=0;i<n;i++) scanf("%d",&a[i]);for (i=0;i<n;i++) sum=sum+a[i];avg=sum/n;c=fabs(a[0]-avg);k=0;for (i=0;i<n;i++)if (fabs(a[i]-avg)>c){c=fabs(a[i]-avg);k=i;}printf("%d",a[k]);return 0;} 

2.4.学生成绩标准差计算 

描述

        输入某班级n(0<n<100)个学生的成绩到数组a中,编写程序求成绩的标准差,求标准差的公式如下:

        其中,表示学生的总平均成绩,表示第i个学生的成绩。 

输入用例

6

95 85 75 65 55 45

输出用例

18.708

具体实现

#include <stdio.h>
#include<math.h>
int main (){int a[100];int i,n,c,k;double st,sum=0,avg;scanf("%d",&n);for (i=0;i<n;i++) scanf("%d",&a[i]);for (i=0;i<n;i++) sum=sum+a[i];avg=sum/n;sum=0;for (i=0;i<n;i++){sum=sum+(a[i]-avg)*(a[i]-avg);}st=sqrt(sum/(n-1));printf("%.3lf",st);return 0;} 

2.5.次对角线元素求和

描述

        有一个5×5矩阵(即二维数组b),编写程序输出该矩阵次对角线上的所有元素之和。

输入用例

3          21        5        98        10

44        12        1        12        8

67        61        45      67        17

12        21        33      56        34

35        36        78      90        19

输出用例

123

具体实现

#include <stdio.h>
#include<math.h>int main (){int b[5][5];int i,j;long sum;for (i=0;i<5;i++)for(j=0;j<5;j++)scanf("%d",&b[i][j]);sum=0;for(i=0,j=5;i<5;i++){j--;sum=sum+b[i][j];}printf("%ld",sum);return 0;} 

2.6.矩阵对角线区域调整

描述

        有一个5×5矩阵(即二维数组b),编写程序将矩阵的左下三角(含主对角线)各元素加10,右上三角各元素(不含主对角线)减10。

输入用例

13 21 55 98 47

12 18 19 67 61

89 80 36 78 10

89 87 67 80 12

12 33 88 57 70

输出用例 

23 11 45 88 37

22 28 9  57 51

99 90 46 68 0

99 97 77 90 2

22 43 98 67 80 

具体实现 

#include <stdio.h>
#include<math.h>
int main (){int b[5][5];int i,j;for(i=0;i<5;i++){for(j=0;j<5;j++){scanf("%d",&b[i][j]);if(i<j){b[i][j]-=10;}else{b[i][j]+=10;}printf("%d ",b[i][j]);}printf("\n");}return 0;} 

2.7.二维数组先列后行降序排序

 描述

        有一个n行m列(0<n<20,0<m<20)的整型二维数组b,编写程序对二维数组b[n][m]先按列降序排序,再按行降序排序。

输入用例

4 5

21  3   5   98   10

44 12  1   12    8

67 61 45  67   17

35 36 78  90    19

输出用例

98  78  67 61  19

90  45  44  36  17

67  35  12  10  5

21  12   8    3   1

具体实现 

#include <stdio.h>
int main (){int b[20][20];int n,m,i,j,k,temp;scanf("%d%d",&n,&m); for (i=0;i<n;i++)for(j=0;j<m;j++)scanf("%d",&b[i][j]);for(k=0;k<m;k++)for(i=n-1;i>0;i--)for(j=0;j<i;j++)if(b[j][k]<b[j+1][k]){temp=b[j][k];b[j][k]=b[j+1][k];b[j+1][k]=temp;}for(k=0;k<n;k++)for(i=m-1;i>0;i--)for(j=0;j<i;j++)if(b[k][j]<b[k][j+1]){temp=b[k][j];b[k][j]=b[k][j+1];b[k][j+1]=temp;}for (i=0;i<n;i++){for(j=0;j<m;j++)printf("%d ",b[i][j]);printf("\n");}return 0;} 

2.8. 二维数组字符串升序排序

描述

        输入n个字符串(长度小于20)存入二维数组c中,编写程序对其进行排序(由小到大)并按次序输出。

输入用例

3

bcd

abd

abc

输出用例

abc

abd

bcd

具体实现

#include<stdio.h>
#include<string.h>
void myGets(char s[]){char ch;while((ch=getchar())!='\n' && ch!=EOF)*s++=ch;*s=0;
}
int main(){char c[20][20],temp[20];int n,i,j;scanf("%d",&n);getchar();for(i=0;i<n;i++)gets(c[i]);for(i=n-1;i>0;i--)for(j=0;j<i;j++)if(strcmp(c[j],c[j+1])>0){strcpy(temp,c[j]);strcpy(c[j],c[j+1]);strcpy(c[j+1],temp);}for(i=0;i<n;i++)puts(c[i]);return 0;  
}

2.9.删除小写字符形成新字符串

描述

        从键盘输入一个字符串s,删除其中所有的小写字符后形成一个新字符串,然后输出。

输入用例

www.163.com

输出用例

.163.

具体实现

#include <stdio.h>
#include <string.h>
int main (){char s[30];int i,j;gets(s);i=0;while (s[i]!='\0'){if(s[i]>='a' && s[i]<='z'){j=i;while (s[j]!='\0'){s[j]=s[j+1];j++;	}s[j-1]='\0';}else i++;}puts(s);	return 0;} 

2.10.恺撒密码加密 

描述

        朱迪斯·恺撒在其政府的秘密通信中使用恺撒密码进行信息加密,恺撒加密因而得其名。凯撒密码的基本思想是将待加密的信息(称为明文)中每个字母在字母表中向后移动常量key,得到加密信息(称为密文)。例如,假设字母表为小写英文字母表,key等于3,则对于明文computer systems将加密为frpsxwhu vbvwhpv。

输入用例

3

computer system

输出用例

frpsxwhu vbvwhpv

具体实现

#include <stdio.h>
#include <string.h>
int main (){char s[100]={0};int i,key;scanf("%d",&key);while(getchar()!='\n');gets(s); i=0;while (s[i]!='\0'){if ((s[i]>=65 && s[i]<=90)  ){s[i]=(s[i]+key-65)%26+65;}if (s[i]>=97 && s[i]<=122){s[i]=(s[i]+key-97)%26+97;	}i++;}puts(s);	return 0;} 

2.11.优秀学生信息输出

描述

        有n个学生,每个学生的数据包括学号、姓名和成绩,要求输出成绩优秀(大于等于90分)学生的信息(包括学号、姓名和整型成绩)。如果没有符合条件的,则输出“No”。

输入用例

3

1001 Make 86

1002 Linda 58

1003 Jone 90

输出用例

1003 Jone 90

具体实现 

#include <stdio.h>
#include <string.h>
int main (){struct student{int num;char name[10];int score;	};struct student stu[20];int n,i,flag=0;scanf("%d",&n);for (i=0;i<n;i++){scanf("%d%s",&stu[i].num,stu[i].name);scanf("%d",&stu[i].score);} for (i=0;i<n;i++)if (stu[i].score>=90){flag=1;printf("%d %s %d\n",stu[i].num,stu[i].name,stu[i].score);}if(flag==0) printf("No");return 0;} 

2.12.高分学生筛选输出

描述

        有n个学生,每个学生的数据包括学号、姓名和3门课程的成绩,要求输出平均成绩高于90分以上(包括90分)或全部课程成绩均在85分以上(包括85分)的学生信息(包括学号和姓名),如果没有符合条件的,则输出“No”。

输入用例

3

1001 Make 86 91 89

1002 Linda 78 78 80

1003 Jone 90  67 71

输出用例

1001 Make

具体实现

#include <stdio.h>
#include <string.h>
int main (){struct student{int num;char name[10];int score[3];float avg;};struct student stu[20];int n,i,sum,flag=0;scanf("%d",&n);for (i=0;i<n;i++){scanf("%d%s",&stu[i].num,stu[i].name);scanf("%d%d%d",&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);} for (i=0;i<n;i++){stu[i].avg=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;if ((stu[i].avg>=90)||(stu[i].score[0]>=85 && stu[i].score[1]>=85 && stu[i].score[2]>=85)){flag=1;printf("%d %s\n",stu[i].num,stu[i].name);}}if(flag==0) printf("No");return 0;} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/636528.shtml

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

相关文章

软考系分之计算机网络通信方向、同步和交换

文章目录 1、概述2、通信方向和同步3、交换方式4、总结 1、概述 本篇依旧是一图概括主要考察的知识点&#xff0c;包括通信方向&#xff08;单工、半双工、全双工&#xff09;&#xff0c;同步方式和数据交换等。 2、通信方向和同步 通信方向&#xff08;单工、半双工、全双工…

【react】创建react项目+项目结构

使用create-react-app快速搭建开发环境 create-react-app是一个快速创建React开发环境的工具&#xff0c;底层由Webpack构建&#xff0c;封装了配置细节 npx create-react-app react_hm执行命令后开始创建 创建好执行cd react_hm npm start 当看到webpack compiled successfu…

MySQL运维实战(4.3) SQL_MODE之ONLY_FULL_GROUP_BY

作者&#xff1a;俊达 ONLY_FULL_GROUP_BY 设置ONLY_FULL_GROUP_BY时&#xff0c;对有GROUP BY子句SQL&#xff0c;SELECT的字段要么是GROUP BY中的字段&#xff0c;要么对字段进行聚合运算&#xff08;如 SUM、COUNT 等&#xff09;&#xff0c;否则SQL执行报错。 不设置ONL…

Spring中的注解

Spring的配置 spring 2.5前xml spring 2.5后xmlannotation spring 3.0后annotationJavaConfig配置类 注解&#xff1a; 1.注入类 替换&#xff1a;<bean id"" class""></bean> 位置&#xff1a;类 语法:Component(value"注入容器中的…

springboot启动过程中触发的事件

在Spring Boot应用程序启动过程中&#xff0c;会触发以下几个重要的事件&#xff1a; 1.ApplicationStartingEvent&#xff1a;这是在应用程序启动的早期阶段触发的事件。在这个事件中&#xff0c;Spring Boot的SpringApplication正在准备应用程序上下文之前&#xff0c;但是在…

前端和后端交互方式

前端和后端交互一般通过HTTP请求和响应来进行。前端通过浏览器向后端发送请求&#xff0c;后端收到请求后进行处理并返回响应&#xff0c;前端接收响应后进行相应的处理。具体的交互方式如下&#xff1a; AJAX&#xff1a;前端通过JavaScript发起异步请求&#xff0c;向后端发…

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构

spring boot shardingsphere mybatis-plus druid mysql 搭建mysql数据库读写分离架构 ##关于window mysql主从搭建简单教程 传送门 window mysql5.7 搭建主从同步环境-CSDN博客 ##父pom.xml <?xml version"1.0" encoding"UTF-8"?> <project…

傲空间私有部署Windows指南

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 安装 docker 请下载对应的 Docker&#xff0c;安装完成后启动。 Docker Desktop for Windows…

小程序宿主环境-组件image

image <image></image> <image src"/images/1.png" mode"aspectFit"></image> image组件的model属性 image组件的model属性用来指定图片的裁剪和缩放模式,常用的model属性如下 scaletofill:(默认缩放模式),不保持原有图片的纵横比…

领略指针之妙

&#x1d649;&#x1d65e;&#x1d658;&#x1d65a;!!&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦&#x1f44f;&#x1f3fb;‧✧̣̥̇‧✦ &#x1f44f;&#x1f3fb;‧✧̣̥̇:Solitary-walk ⸝⋆ ━━━┓ - 个性标签 - &#xff1a;来于“云”的“羽球人”。…

springboot的自定义注解使用

1.自定义注解配合拦截器 // 自定义注解 Target(ElementType.METHOD) Retention(RetentionPolicy.RUNTIME) public interface MyAnnotation {// 自定义注解的属性 }// 控制器类 RestController public class MyController {GetMapping("/myEndpoint")MyAnnotation //…

MySQL主从集群

MySQL主从集群 主从模式、集群模式&#xff0c;都是在一个项目中使用多个mysql节点进行存储和读取数据。 当单机模式部署&#xff0c;不满足安全性、高可用、高并发等需求的时候&#xff0c;就需要考虑主从模式或者集群模式部署。 什么是主从模式&#xff1f; 主从模式&…

[3D]菜板上的鱼

本来想画条鲨鱼&#xff0c;结果成了条菜板上的鱼。 VS&#xff01; ** VS&#xff01; ** 【扭曲】更像菜板上的鱼了。

[C#]winform部署openvino官方提供的人脸检测模型

【官方框架地址】 https://github.com/sdcb/OpenVINO.NET 【框架介绍】 OpenVINO&#xff08;Open Visual Inference & Neural Network Optimization&#xff09;是一个由Intel推出的&#xff0c;针对计算机视觉和机器学习任务的开源工具套件。通过优化神经网络&#xff…

C++设计模式之 模板方法模式

【声明】本题目来源于卡码网&#xff08;题目页面 (kamacoder.com)&#xff09; 【提示&#xff1a;如果不想看文字介绍&#xff0c;可以直接跳转到C编码部分】 【设计模式大纲】 【简介】 --什么是模板方法模式&#xff08;第18种设计模式&#xff09; 模板方法模式&#xff0…

最短路径 Dijkstra

目录 最小堆优化邻接矩阵版邻接表版 最小堆优化 优化的点是每次直接通过最小堆的堆顶找到最短路径最小的未搜索的点省去了一层遍历 const int N 1e6 10, INF 0x3f3f3f3f; int h[N], e[N], ne[N], w[N], n, m, idx 0, d[N]; bool visited[N]; void add(int a, int b, int …

【MySQL】——关系数据库标准语言SQL(大纲)

&#x1f383;个人专栏&#xff1a; &#x1f42c; 算法设计与分析&#xff1a;算法设计与分析_IT闫的博客-CSDN博客 &#x1f433;Java基础&#xff1a;Java基础_IT闫的博客-CSDN博客 &#x1f40b;c语言&#xff1a;c语言_IT闫的博客-CSDN博客 &#x1f41f;MySQL&#xff1a…

每日OJ题_算法_滑动窗口⑦_力扣30. 串联所有单词的子串

目录 力扣30. 串联所有单词的子串 解析及代码 力扣30. 串联所有单词的子串 30. 串联所有单词的子串 - 力扣&#xff08;LeetCode&#xff09; 难度 困难 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中…

51单片机8*8点阵屏

8*8点阵屏 8*8点阵屏是一种LED显示屏&#xff0c;它由8行和8列的LED灯组成。每个LED灯的开闭状态都可以独立控制&#xff0c;从而可以显示出数字、字母、符号、图形等信息。 8*8点阵屏的原理是通过行列扫描的方式&#xff0c;控制LED灯的亮灭&#xff0c;从而显示出所需的图案或…

已解决java.net.ConnectException异常的正确解决方法,亲测有效!!!

已解决java.net.ConnectException异常的正确解决方法&#xff0c;亲测有效&#xff01;&#xff01;&#xff01; 文章目录 问题分析 报错原因 解决思路 解决方法 确认服务器状态 检查网络连接 检查防火墙设置 验证地址和端口 具体执行步骤 总结 在进行网络编程或构…