数组练习题

1.打印X图案

  • if ((i == j) ||( i + j == n - 1))

  • 循环打印了一个行和列相同的数组

  • 当i==j的时候 打印正斜线

  • i+j==n-1的时候打印反斜线

int main()
{int n = 0;while (scanf("%d", &n) != EOF){for (int i = 0; i < n; i++)  //外循环为行{for (int j = 0; j < n; j++) //内循环为列{if (i == j || i + j == n - 1)//最关键的地方,正斜线为[i][i]处是*, 反斜杠为[i][n-1-j]处是*,一行打印1个或2个*printf("*");elseprintf(" ");}printf("\n"); //打印完一行,换行}}return 0;
}

2.打印空心正方形

用于判断当前打印的位置是否应该是星号 * 的条件。具体来说,if(i==0||i==n-1||j==0||j==n-1) 这个条件判断的逻辑是:

  • i==0:判断当前行是不是第一行(因为行计数从0开始)。

  • i==n-1:判断当前行是不是最后一行。n-1 是最后一行的行索引。

  • j==0:判断当前列是不是第一列。

  • j==n-1:判断当前列是不是最后一列。

如果这四个条件中的任何一个为真,说明当前的 (i, j) 位置位于正方形的边缘(要么是顶部,底部,左侧或右侧边界)。因此,在这些位置上应该打印一个星号 * 。如果这个条件不成立,那么说明当前位置在正方形的内部,应该打印空格 。这种设计确保了正方形的边缘由星号构成,而内部为空。

//打印空心正方形
int main()
{int n = 0;while (scanf("%d", &n) != EOF){for (int i = 0; i < n; i++)  //外循环为行{for (int j = 0; j < n; j++) //内循环为列{if ((i == 0 || i == n - 1) ||( j == 0 || j == n - 1))//找规律printf("* ");elseprintf("  ");}printf("\n");}}
}
​

3.数组转置

  • 将数组的行和列调换

//数组转置
int main() {int i = 0;int j = 0;int arr[3][3] = { {1,2,3},{4,5,6},{7,8,9} };for (i = 0; i < 3; i++) {for ( j = 0; j <3 ; j++){printf("%d", arr[i][j]);}printf("\n");}printf("\n");for (i = 0; i < 3; i++) {for (j = 0; j < 3; j++){printf("%d", arr[j][i]);}printf("\n");}
​}

4.逆序输出

#include<stdio.h>
void Reverse(int arr[], int sz) {int l = 0;                   //左下标,从0开始int r = sz - 1;              //右下标,从数组最后一项开始while (l < r) {              //交换数字,直到左下标大于右下标int tmp = 0;tmp = arr[l];arr[l] = arr[r];arr[r] = tmp;l++;r--;}
}
int main() {int arr[10] = {0};for (int i = 0; i < 10; i++) {scanf("%d ", &arr[i]);}int sz = sizeof(arr) / sizeof(arr[0]);Reverse(arr, sz);                  //逆序for (int i = 0; i < 10; i++) {printf("%d ", arr[i]);}
}

5.有序序列合并

  • 描述

输入两个升序排列的序列,将两个序列合并为一个有序序列并输出。

数据范围: 1≤𝑛,𝑚≤1000 1≤n,m≤1000 , 序列中的值满足 0≤𝑣𝑎𝑙≤30000 0≤val≤30000

  • 输入描述:

输入包含三行,

第一行包含两个正整数n, m,用空格分隔。n表示第二行第一个升序序列中数字的个数,m表示第三行第二个升序序列中数字的个数。

第二行包含n个整数,用空格分隔。

第三行包含m个整数,用空格分隔。

  • 输出描述:

输出为一行,输出长度为n+m的升序序列,即长度为n的升序序列和长度为m的升序序列中的元素重新进行升序序列排列合并。

int main()
{int n = 0;int m = 0;int arr1[1000] = {0};int arr2[1000] = {0};//输入n和mscanf("%d %d",&n,&m);int i = 0;int j = 0;//输入两个升序序列for(i=0; i<n; i++){scanf("%d",&arr1[i]);}for(i=0; i<m; i++){scanf("%d",&arr2[i]);}//合并有序序列并输出i=0;j=0;while(i<n && j<m){if(arr1[i] < arr2[j])   ///拿arr1中的元素逐个与arr2中的第一个元素比较,小的输出在前{printf("%d ",arr1[i]);i++;}else{printf("%d ",arr2[j]); //如果arr2中小的话输出arr2j++;}}//判断尚未遍历完的数组是否需要打印输出if(i==n && j<m)for(;j<m;j++)printf("%d ",arr2[j]);elsefor(;i<n;i++)printf("%d ",arr1[i]);return 0;
}

6.计算平均值

  • 编写一个程序,从用户输入中读取10个整数并存储在一个数组中。然后,计算并输出这些整数的平均值

int main() {int arr[10] = { 0 };int i = 0;int sum = 0;printf("请输入10个整数\n");for (i = 0; i < 10; i++) {scanf("%d",&arr[i]);sum += arr[i];}float average = (float)sum / 10;printf("平均数为:%.2f\n", average);
}

7.交换数组

#include <stdio.h>
​
// 定义一个常量来表示数组的大小
#define ARRAY_SIZE 5
​
// 函数定义:交换两个数组的内容
void swapArrays(int arr1[], int arr2[], int size) {for (int i = 0; i < size; i++) {// 使用临时变量进行值的交换int temp = arr1[i];arr1[i] = arr2[i];arr2[i] = temp;}
}
​
int main() {// 定义两个数组A和B,并初始化它们的内容int arrayA[ARRAY_SIZE] = { 1, 2, 3, 4, 5 };int arrayB[ARRAY_SIZE] = { 6, 7, 8, 9, 10 };
​// 输出交换前的数组内容printf("交换前的数组A:");for (int i = 0; i < ARRAY_SIZE; i++) {printf("%d ", arrayA[i]);}printf("\n");
​printf("交换前的数组B:");for (int i = 0; i < ARRAY_SIZE; i++) {printf("%d ", arrayB[i]);}printf("\n");
​// 调用函数进行数组内容的交换swapArrays(arrayA, arrayB, ARRAY_SIZE);
​// 输出交换后的数组内容printf("交换后的数组A:");for (int i = 0; i < ARRAY_SIZE; i++) {printf("%d ", arrayA[i]);}printf("\n");
​printf("交换后的数组B:");for (int i = 0; i < ARRAY_SIZE; i++) {printf("%d ", arrayB[i]);}printf("\n");
​return 0;
}
​

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

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

相关文章

第三篇、利用潜空间生成超稳定动画

1、使用temporal-kit&#xff0c;生成拼接的图片 sides填写3&#xff0c;Height Resolution要填写原视频高度 * sides ,这里也就是三倍 因为原视频动作很快&#xff0c;frames per keyframe填写了2 发现在temp1目录的Input目录下生成了 3* 3的拼接图片 2、到图生图界面&#…

自学Redis7入门篇一

自学Redis7入门篇一 Redis概述一、Redis是什么&#xff1f;二、Redis能干什么&#xff1f;三、去哪里下四、Redis安装配置五、Redis 10数据类型1.字符串(String)2.列表(List)3.哈希表(Hash)4.集合(Set)5.有序集合(ZSet)6.地理空间(GEO)7.基数统计(HyperLogLog)8.位图(bitmap)9.…

vue2人力资源项目3主页

主页权限验证 前置守卫开启进度条&#xff0c;后置守卫关闭进度条 import router from /router import nProgress from nprogress// 导入进度条&#xff08;模板自带&#xff09; import nprogress/nprogress.css// 导入进度条样式&#xff08;模板自带&#xff09; // 前置守…

CNN笔记详解

CNN(卷积神经网络) 计算机视觉&#xff0c;当你们听到这一概念的是否好奇计算机到底是怎样知道这个图片是什么的呢&#xff1f;为此提出了卷积神经网络&#xff0c;通过卷积神经网络&#xff0c;计算机就可以识别出图片中的特征&#xff0c;从而识别出图片中的物体。看到这里充…

Linux学习笔记(3)---- Debian测试网速指令及查看是否千兆网卡

测试网速指令 在Debian系统中&#xff0c;测网速的指令主要有以下几种方法&#xff1a; 使用speedtest-cli工具&#xff1a; speedtest-cli是一个常用的网络速度测试工具&#xff0c;可以通过命令行进行安装和运行。首先&#xff0c;需要安装speedtest-cli&#xff1a; sud…

保持 Hiti 证卡打印机清洁的重要性和推荐的清洁用品

在证卡印刷业务中&#xff0c;保持印刷设备的清洁至关重要。特别是对于 Hiti 证卡打印机来说&#xff0c;它们是生产高质量证卡的关键工具。保持设备清洁不仅可以保证打印质量和效率&#xff0c;还可以延长其使用寿命。本文将探讨保持 Hiti 证卡打印机清洁卡的重要性&#xff0…

C++构造函数和析构函数的调用顺序

一般情况下&#xff0c;调用析构函数的次序正好与调用构造函数的次序相反&#xff0c;也就是最先被调用的构造函数&#xff0c;其对应的析构函数最后被调用&#xff0c;而最后被调用的构造函数&#xff0c;其对应的析构函数最先被调用。 当然对象的构造函数和析构函数调用时机和…

Llama3 端侧部署:算丰 SG2300x 与爱芯元智 AX650N

美国当地时间4月18日&#xff0c;Meta 开源了 Llama3 大模型&#xff0c;包括一个 8B 模型和一个 70B 模型&#xff0c;在测试基准中&#xff0c;Llama 3 模型的表现相当出色&#xff0c;在实用性和安全性评估中&#xff0c;与那些市面上流行的闭源模型不相上下。 Llama3 性能…

Chrome浏览器安装React工具

一、如果网络能访问Google商店&#xff0c;直接安装官方插件即可 二、网络不能访问Google商店&#xff0c;使用安装包进行安装 1、下载react工具包 链接&#xff1a;https://pan.baidu.com/s/1qAeqxSafOiNV4CG3FVVtTQ 提取码&#xff1a;vgwj 2、chrome浏览器安装react工具…

OpenNJet评测,探寻云原生之美

在信息时代的大海上&#xff0c;云原生应用引擎如一艘航行于波涛之间的帆船&#xff0c;承载着创新的梦想和数字化的未来。本文将带领您登上这艘船&#xff0c;聚焦其中之一的OpenNJet&#xff0c;一同探寻其中的奥秘和精妙&#xff0c;领略其独特之美。 OpenNJet 内容浅析 O…

土壤重金属含量分布、Cd镉含量、Cr、Pb、Cu、Zn、As和Hg、土壤采样点、土壤类型分布

土壤是人类赖以生存和发展的重要资源之一,也是陆地生态系统重要的组成部分。近年来, 随着我国城市化进程加快&#xff0c;矿产资源开发、金属加工冶炼、化工生产、污水灌溉以及不合理的化肥农药施用等因素导致重金属在农田土壤中不断富集。重金属作为土壤环境中一种具有潜在危害…

学习笔记:【QC】Android Q - data 模块

一、data init 流程图 主要分为3部分&#xff1a; 1.加载TelephonyProvider&#xff0c;解析apns-config.xml文件&#xff0c;调用loadApns将 xml中定义的数据&#xff0c;插入到TelephonyProvider底层的数据库中 2.初始化phone、DcTracker、TelephonyNetworkFactory、Conne…