scanf字符串不用&数组_c语言用scanf给一维数组赋值

scanf字符串不用&数组_c语言用scanf给一维数组赋值

一、知识点回顾总结。

(一)、一维数组,二维数组。

首先,明确数组的定义:数组是一组具有相同类型的变量的集合。数组包含数组名和数组的下标,数组的每个数据项叫做属于元素。定义格式为:(一维数组)数组类型 数组名; (二维数组)数组类型 数组名。一维数组表示的是一行数据,而二维数组表示的是一个数据表格。注意:1.定义数组时,元素个数一定为常量。2.C语言中数组的下标都是从0开始的。3.数组定义完成后大小不能改变。4.定义的范围要稍大一些,防止下标越界。

数组初始化可直接赋值,eg:int score={90,80,70,100,95}或int score={90,80,70,100,95}或static int score。数组定义但未进行初始化的数组仍然是随机数。数组一般不初始化。数组的赋值用循环语句,不能直接赋值。注意:要保证输入合法,程序则能运行,若输入不合法,则跳出循环。

(二)、字符数组。

字符数组需要调用这个投文件。初始化有两种形式,即:char chr={‘a’,‘b’,‘c’,‘d’,‘e’};或char chr=“abcd”;其中,字符串中包含五个元素,即在字符串后面有一个’\0’。

字符数组的输入:1.scanf(“%s”,字符数组名),对于scanf语句得到的字符串不存在空格,空格作为两段字符串的分隔符。2.gets语句输入gets(字符数组名),输入一个字符串,可包含空格,遇到回车终止。3.puts语句:puts(字符串名字),输入一个字符串和一个换行符。

(三)、扩充知识点。

1.关于memset的用法,首先要调用投文件,格式memset(数组名,被赋的值,sizeof(数组名)),其中,被赋的值只能是0过-1,若输入其他的值则错误。bool数组只占用一个字节,节省内存,只有两个值0个1或者两个状态true和false。a=!a是取值取反的意思。inta为给定数组的首地址。sprintf(s,”%d”,x)是将整数x转化为字符s。

2.有关查找方法:较为普通的是顺序查找,即从前往后逐一查找。二分查找是:使用三个指针,将一组数据先有序排列起来,三个指针分别位于数据的首位,末位和中间,判断所要查找的数与中间的数的大小关系,如果大于中间的数则首位指针移动到中位的后一位,中位的指针再移动到后半部分的中位,反之亦然,以此类推,直到找到这个数,或者末位指针小于首位指针则结束程序。

3.筛法求素数eg:输出1到100的素数。从2开始判断,2是素数,则2的倍数均不是素数,筛掉;3是素数,3的倍数都不是素数,筛掉;4是2的倍数,已经判断过了;再继续判断5……以此类推。

二、方法总结。

当数据量较大,且关联性不强时,用多个字母定义变量,显然很费时费力,这时候就用到了数组,定义一个可以将所有的同种类型变量放进去的数组,然后用循环语句输入,就缩短了代码长度,使输入更加简洁。当需要输入的一行数字位数过多时,此时用long long或着int定义占用空间过大,用int定义甚至会出现越界的情况,此时可以使用字符数组定义,将这一行数看成字符串。

举例:题目计算鞍点:给定一个55的矩阵,每行只有一个最大值,每列只有一个最小值,寻找这个矩阵的鞍点。鞍点指的是矩阵中的一个元素,它是所在行的最大值,并且是所在列的最小值。例如:在下面的例子中(第4行第1列的元素就是鞍点,值为8 )。

11 3 5 6 9

12 4 7 8 10

10 5 6 9 11

8 6 4 7 2

15 10 11 20 25

思路:由于是一个二维表格,则使用二维数组定义,将表格输入。写两重循环,第一重循环控制行数变化,第二重控制列数变化。开始先让行数不变,改变列数,找出某一行的最大值,并记录位置。找到某一行最大值哪里列,从上往下找这一列最小值,并判断某行最大值与该列最小值是否为同一个数,若相同输出,不相同则继续执行循环,直到全部遍历一遍后没有找到则输出not found。

代码实现:

#include

using namespace std;

int main()

{

int max,min;

int n1,n2,m;

n1=0;n2=0;m=0;

int a;

for(int i=0;i<=4;i++)

{

for(int j=0;j<=4;j++)

{

cin>>a;

}

}

for(int k=0;k<=4;k++)

{

max=a;

for(int l=0;l<=4;l++)

{

if(a>=max)

{

max=a;

n1=k;

n2=l;

}

}

min=max;

for(int t=0;t<=4;t++)

{

if(a<=min)

{

min=a;

n1=t;

}

}

if(minmax)

{

m++;

n1+=1;n2+=1;

cout<<n1<<” “<<n2<<” “<<max<<endl;

break;

}

else

m+=0;

}

if(m0)

cout<<“not found”<<endl;

return 0;

}

scanf字符串不用&数组_c语言用scanf给一维数组赋值

本文【scanf字符串不用&数组_c语言用scanf给一维数组赋值】由作者: 乐观锁 提供,本站不拥有所有权,只提供储存服务,如有侵权,联系删除!
本文链接:https://www.cuoshuo.com/blog/4100.html

(0)
上一篇 2023-03-09 07:22:01
下一篇 2023-03-09 07:29:02

相关推荐

  • css表格样式在哪里设置_css表格样式大全

    目标 表格边框合并 表格边框的间距设置 表格标题位置的设置 表格可以说是网页必备的元素之一,但是原生的表格样式都是很丑,列如表格加入边框的默认情况下,单元格与单元格之间有一定的空隙;设置单元格边框间距等等,都是可以通过css来设置自己的默认样式 表格边框合并 默认情况下,表格有边框的情况下,内部看似有一层填充物,其实是表格的外边框和内部单元格的间距。 这层间…

    2023-03-21
    000
  • mvc框架和ssm框架区别_mvc和ssm哪个简单

    最近有粉丝给我留言SSM框架三件套,很重要!自己必须要会,但是不知道该怎么做,所以今天小编给大家整理一个SSM框架的搭建与整合教程案列 在写代码之前我们先了解一下这三个框架分别是干什么的? SpringMVC:它用于web层,相当于controller(等价于传统的servlet和struts的action),用来处理用户请求。举个例子,用户在地址栏输入ht…

    2023-03-10
    500
  • js进度条怎么命令进度

    一、前言 我们经常在网页上 ,游戏界面加载时会看到加载进度条的效果,我们往往会以为这些加载进度条的效果,很难实现。 今天教大家JS+CSS结合做简单一个加载进度条的效果。 二、项目准备 软件:HBuilderX。 三、项目实现 1. body 创建2个div,外部div添加id"progress"属性, 添加 id属性 。 <div…

    2023-03-13
    300
  • cad转jpg线条不明显怎么办

    CAD文件转JPG图片如何转才能非常清晰呢?大家都知道CAD图纸设计出来,是需要拿出来进行实地参考和浏览的,将它转换成图片会让我们在外面观看时方便很多。但是很多种转换方法转换出来的图片都不怎么清晰,今天教大家两种能够清晰转换的方法,有需要的小伙伴快来一起学习吧。 方法一:在线网站转换 使用在线网站转换文件格式,有时候可以帮助我们解决燃眉之急。CAD在线转换器…

    2023-03-16
    100
  • photoshop cs8.01教程 photoshopcs6安装教程

    【Photoshop CS6︱全套详细入门笔记及安装方法】无论是摄影迷,美术迷,还是漫画迷,学会PS,就可以设计制作自己的海报、日历、漫画、艺术照……让生活更加丰富多彩。超详细PS学习笔记及安装方法↓↓入门无压力,从此P图不求人。转发学习! →_→via@微课堂

    2023-03-19
    100
  • jsp注释方法_jsp调用Java中的一个方法

    前言:在CGI(通用网关接口)编程风行的日子,人们纷纷寻思简化并让其更加灵活的新方法和新技术,包括PHP、JSP、ASP。1997年SUN公司推出了servlet,1999年初,SUN公司推出了JSP,实际上在servlet基础上修改而成。JSP即Java服务器页面(Java Server Page),将HTML和JAVA代码使用某种方式结合起来,完成前后端…

    2023-03-09
    300
  • php文件用什么软件打开

    做技术的应该都知道,大部分文本类文件都可以用记事本打开,比如js文件、php文件、log文件、py文件、json文件、xml文件等等。但是你需要先“鼠标右键”,然后找到“打开方式”,才能找到“用记事本打开”,下面教大家直接把它给添加到右键中: 新建一个txt文件,复制下方的代码到其中,然后保存关闭。 Windows Registry Editor Versi…

    2023-03-14
    300
  • openssl漏洞修复可以不卸载原openssl吗 openssl是干什么的

    OpenSSL 是一个安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。 OpenSSL是Openssl团队的一个开源的能够实现安全套接层(SSLv2/v3)和安全传输层(TLSv1)协议的通用加密库。该产品支持多种加密算法,包括对称密码、哈希算法、安全散列算法等。 OpenSSL 常…

    2023-03-16
    200
  • 解析xml时,需要校验节点是否闭合

    XML的简介 定义 HTML:超文本标记语言 XML:eXtensible Markup Language 可扩展标记语言 version=”1.0″ 可扩展:所有的标签都是自定义的。 功能:数据存储 配置文件(最主要的使用场景) 数据传输(一般不使用xml做数据传输,而使用json代替) html与xml区别: html语法松散,x…

    2023-03-21
    000
  • shell编程入门

    Shell脚本编程难,难于上青天!这话不假,尤其很多程序员新人,学了几个月Shell脚本写得还是一塌糊涂,但闻道有先后,术业有专攻,他人能学好Shell脚本编程只是因为比我们早些接触而已。 作为一名优秀的程序员,懂得Shell脚本是基本功,要想后续站得更稳,这个基本功必须得打牢。 今天给大家分享从基础到进阶的Shell脚本编程,共两册,适合不同学习进度的朋友…

    2023-03-09
    2700

发表回复

登录后才能评论
返回顶部
错说博客上线啦!