二维数组与字符数组部分实验

2023-11-05

学习目标:

1. 掌握与数组有关的算法。

2. 掌握二维数组的定义、存储结构、初始化及输入/输出的方法。

3. 掌握字符数组的定义、初始化及输入/输出的方法。

4. 掌握字符串和字符串函数的使用。


学习内容:

1. 编写程序实现:输出二维数组(数值型)每一行的最大值。要求数组的行数、列数、数组的值均由键盘输入。

源代码:

#include<stdio.h>

#include<stdlib.h>

void main()

int a[3][3],i,j,max;//数组行列多少看题意

for(i=0;i<3;i++)

{for(j=0;j<3;j++)

scanf("%d",&a[i][j]);}//输入值,中间可用空格隔开每个值

printf("输入数组是%d行,%d列:\n",i,j);

printf("输入二维数组:\n");

for(i=0;i<3;i++)

{for(j=0;j<3;j++)printf("%5d",a[i][j]);//对输入的值按题意的行列数依次打出

printf("\n");}

printf("------输出统计结果------\n");

for(i=0;i<3;i++)

{max=a[i][0];

for(j=0;j<3;j++)

if(a[i][j]>max)

   max=a[i][j];

printf("第%d行的最大值%d\n",i+1,max);}

printf("\n");

  system("pause");}


 杨辉三角

杨辉三角最本质的特征是:它的两条斜边都是由数字1组成的,而其余的数则是等于它上面的两个数之和。

 (本题不能打出这种效果,换用另一种模式)

2. 编写程序实现:按杨辉三角的规律打印以下数据(要求只打印出10行)。编译、连接、运行该程序,给出运行结果。

      1

      1     1

      1     2     1

      1     3     3     1

      1     4     6     4     1

      1     5     10   10   5     1

      …

(由于本题只打印十行就够,则以下代码为十行的)

源代码:

#include<stdio.h>

#include<stdlib.h>

void main()

{ int a[11][11],i,j;

//因为是几行几列,不能是0行几列或几行0列,初始值从1行1列开始

 for(i=1;i<11;i++)

 { a[i][1]=1;a[i][i]=1;//根据杨辉三角的定义,斜边上都是1,则某行1列是1,末行末列也是1}

  for(i=3;i<11;i++)//前两行都是1,则从第三行开始一直到结束中间的值都是等于它上面两个数的和

 for(j=2;j<i;j++)//行从第3行开始,从第2列开始

 a[i][j]=a[i-1][j-1]+a[i-1][j];//该位置的上一行的前一列和本列的值相加

  for(i=1;i<11;i++)

  {for(j=1;j<=i;j++)

  printf("%5d",a[i][j]);//打印出来10行10列的效果图,输出间隔宽度为5的各个值

  printf("\n");}

  system("pause");

}

3.编写程序实现:输入一行字符串,统计其中大写字母、小写字母、空格、数字及其他字符的个数。编译、连接、运行该程序,给出运行结果。

源程序:#include<stdio.h>

#include<stdlib.h>

#include<string.h>    //本题用到字符,则需要相应的申明

void main()

char c[108];//字符串的所有值可以定义大些,但是如果没有写完,会被默认为其他字符

   gets(c);//用gets()函数输入字符串值

   int a[5]={0,0,0,0,0},i=0;

//由题意只用定义数组含有5个值即可,

//分别表示大写字母、小写字母、空格、数字及其他字符的个数

  for(i=0;i<107;i++)

   {if(c[i]>='A'&&c[i]<='Z') a[0]++;//大写字母个数

   else if(c[i]>='a'&&c[i]<='z') a[1]++;//小写字母个数

   else if(c[i]==' ') a[2]++;//空格个数

   else if(c[i]>='0'&&c[i]<='9') a[3]++;//数字个数

   else  a[4]++;//其他字符个数

}

   printf("大写字母个数=%d\n小写字母个数=%d\n空格个数=%d\n数字个数=%d\n其他字符=%d\n",a[0],a[1],a[2],a[3],a[4]);

   system("pause");

}

4. 编写程序实现:输入一行字符,统计其中有多少个单词,单词之间用一个或多个空格分隔。编译、连接、运行该程序,给出运行结果。

源程序:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void main()

{char c[30];

  gets(c);

  int i,j=1;     //j记录单词数量,初始值应设为1,为了占一个空格符,避免设为0引起的记词数不对

  for(i=0;c[i]!='\0';i++)

  if(c[i]==' '&&!(c[i-1]==' ')) j++;        //当该位置为空格并且前一个不为空格时,j计数加1

  printf("j=%d\n",j);

  system("pause");

}

5.编写程序实现:将输入的任一字符串中的大写字母替换为小写字母。编译、连接、运行该程序,给出运行结果。

(此题主要思想是一个C语言strlwr()函数,该函数是用于将字符串中的字符转换为小写,其原型为char *strlwr(char *str);若想将字符串转换为大写形式则使用strupr()函数)

源程序:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

void main()

char c[20];//输入的字符串长度,随自己定,注意在键盘输入时要为连续的,不要分开写字符

  printf("-----将大写字符均改为小写字符-----\n");

  printf("输入字符串小于等于定义的长度字符串:\n");

  scanf("%s",c);

  printf("转换后的字符串为:%s\n",strlwr(c));//此处别忘了加%s,(小编就是忘了,调了很多次尴尬)

    system("pause");

}

(若转换为大写,改为strupr()即可)

 

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二维数组与字符数组部分实验 的相关文章

  • 高斯顺序消元法c++程序代码及实例

    include using namespace std define n 4 通过符号常量定义线性方程组的规模大小 当前的n值表示适用解n元一次线性方程组 void Process of elimination double A n n d
  • Vue.js 报错:Cannot read property ‘validate‘ of undefined“

    错误解决 起因 是我将elemnt ui登录 默认放在mounted 函数里面 导致vue初始化就调用这个函数 找了网上 有以下错误原因 1 一个是你ref写错了 导致获取不了这个表单dom 我这显然不是 2 我们vue初始化时 eleme
  • Springboot+POI 带有图片的表格导入导出功能解析

    今天来讲下在导入数据的场景时 表格中会有一列存放的是对应的图片信息 导入后在前端页面进行表格数据展示 这里的难点主要在于 对于获取表格中图片列的图片数据进行保存到服务器以及对应插入数据库 建议一般是用图片的保存服务器的路径地址保存到数据库中
  • idea装载jerbel以及文件上传下载

    一 JRebel 1 1 Jrebel介绍 JRebel是一个Java开发工具 它是一款用于实时代码重载的插件 它的主要功能是在不重新启动应用程序的情况下 将修改后的Java代码实时应用到正在运行的应用程序中 从而加快开发周期 提高开发效率

随机推荐

  • SQL Server常用数据类型

    SQL Server常用数据类型 数据类型是数据的一种属性 是数据所表示信息的类型 下面是小编为大家搜索整理了关于SQLServer常用数据类型 欢迎参考阅读 希望对大家有所帮助 SQLServer2000提供了比较多的数据类型供用户使用
  • MySQL中删除重复数据只保留一条

    MySQL中删除重复数据只保留一条 数据 INSERT INTO test time uuid name VALUES 1 wang INSERT INTO test time uuid name VALUES 2 王 INSERT INT
  • Object与json字符串的相互转换

    Object与json字符串的相互转换 第一步 引入fastjson的依赖jar包 注 maven项目 直接在pom xml中进行配置即可 注 如果引入此版本的依赖 导致项目不能启动 报错 找不到启动类 那么可以换一个版本的fastjson
  • PyTorch 深度学习模型压缩开源库(含量化、剪枝、轻量化结构、BN融合)

    点击我爱计算机视觉标星 更快获取CVML新技术 本文为52CV群友666dzy666投稿 介绍了他最近开源的PyTorch模型压缩库 该库开源不到20天已经收获 219 颗星 是最近值得关注的模型压缩开源库 开源地址 https githu
  • FreeRTOS学习笔记 6 - 互斥量

    目录 1 创建 2 获取 3 释放 4 测试 FreeRTOS不支持调度方式的设置 所以下面2个宏定义可以随意设置值 define RTOS IPC FLAG FIFO 0x00 define RTOS IPC FLAG PRIO 0x01
  • 灰度重采样的方法分为_均值采样

    from skimage import datafrom matplotlib import pyplot as pltimport numpy as npimage data coffee print image shape 显示图像原始
  • Python连接Oracle数据库

    cx Oracle cx Oracle模块是Python连接Oracle数据库的模块 在Python中 如果要连接Oracle 必须先安装cx Oracle模块 cx Oracle的下载地址 https pypi python org py
  • 【 华为OD机试 2023】 最快到达医院的方法(C++ Java JavaScript Python)

    华为od机试题库 华为OD机试2022 2023 C Java JS Py https blog csdn net banxia frontend category 12225173 html 华为OD机试2023最新题库 更新中 C Ja
  • printk与内核日志打印优先级设置

    1 控制台的日志优先级 define KERN EMERG lt 0 gt 致命级 紧急事件消息 系统崩溃之前提示 表示系统不可用 define KERN ALERT lt 1 gt 警戒级 报告消息 表示必须采取措施 define KER
  • MySQL 数据库引擎

    引擎分类 InnoDB MyIsam 引擎对比 单位 ms 测试项 MyIsam InnoDb 结论 insert 100w 28825 123487 百万级插入性能 MyIsql 在30秒内完成性能优于 InnoDb 性能相差接近5倍 u
  • docker安装MongoDB

    base rootyx rootyx Default string sudo docker pull mongo 4 4 4 4 Pulling from library mongo 99803d4b97f3 Pull complete 6
  • NODE => CORS跨域资源共享学习

    1 CORS跨域资源共享 cors是Express的一个第三方中间件 通过安装和配置cors中间件 可以很方便地解决跨域问题 运行npm install cors 安装中间件 使用const cors require cors 导入中间件
  • Qt信号槽使用注意事项

    使用信号槽connect时 1 信号函数和槽函数都不能加形参 2 信号函数和槽函数形参列表要保持一致
  • 使用VS2010编译QT

    首先不要使用中文目录 发布QT程序时 为了使没有QT依赖库的环境中也能运行QT程序 这就需要静态编译你的QT程序 要达到这个目的 首先必须静态编译你的QT库文件 1 下载Qt的安装包和VS2010的Qt插件 2 安装Qt Library 注
  • maven模板freemarker引擎代码

    依次在src resource template 新建模板引擎mapper xml ftl
  • wvp-pro Java项目启动流程

    1 下载eclipse 下载 点击左边Download x86 64 下载 2 下载后解压 进入文件夹执行 eclipse inst 一路 next就可以安装完成了 记得给自己选择一个合适的安装路径 3 安装结束后 打开IDE 选择菜单he
  • 距离大决战777天——目前的进度

    最近看上了两款开发板 一是大名鼎鼎的合宙C3 看上他是因为9 9的无敌性价比 二是某黄厂的st7789s3 看上他是因为始终的大小和性价比 有着一块170 320的屏 S3处理起来刚好得心应手 58元的价位也是蛮能打 秒杀其他大厂的板子的配
  • OpenMMLab实训16班--第一节

    OpenMMLab实训16班 第一节 主讲人 张子豪 主题 计算机视觉与Openmmlab入门 内容 一 计算视觉基础 计算机视觉任务主要分为分类 检测 分割三类任务 计算机视觉基础问题都是对图像进行模式识别和数据挖掘 二 openmmla
  • 魔方游戏(附游戏开源代码)

    这个魔方游戏的前期的实现参考了许多教程 但全部代码逻辑都是本人写的 借鉴了的都会给出原贴链接 只讲实现的思路 已完成 魔方的转动和魔方的动画效果 支持魔方的cfop全部公式 按按钮可转动魔方 按键盘上的alt键可用移动鼠标360无死角观察魔
  • 二维数组与字符数组部分实验

    学习目标 1 掌握与数组有关的算法 2 掌握二维数组的定义 存储结构 初始化及输入 输出的方法 3 掌握字符数组的定义 初始化及输入 输出的方法 4 掌握字符串和字符串函数的使用 学习内容 1 编写程序实现 输出二维数组 数值型 每一行的最