为什么得数会是a,b,c都是-858993460

我的少年 2012-02-28 10:10:01
#include<stdio.h>
void main()
{
int a,b,c,t; 1

printf("enter a,b,c:\n"); 2

scanf("%d,%d,%d",&a,&b,&c); 3

printf("a=%d,b=%d,c=%d\n",a,b,c); 4

t=c;c=b;b=a;a=t; 5

printf("a=%d,b=%d,c=%d\n",a,b,c); 6

}
本人小菜鸟,有很多的疑问。
第1,2行,我能懂
但第三行就有点不懂

但这代码执行了之后,
enter a,b,c:

a=-858993460 b=-858993460 c=-858993460
a=-858993460 b=-858993460 c=-858993460
这就真迷茫了,都感觉和上面的怎么连接不上的。。。。。。。。。。。。。。。。。。。。。。。。
求解,求解,求解。。。。。。。。。。。。。。。。。。。。。。。

...全文
609 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
z1058017535 2012-02-29
  • 打赏
  • 举报
回复
看来好多老谭的学生啊,当年我也是这么用的
逗号和空格的纠葛
这样修改
scanf("%d%d%d",&a,&b,&c);
输入的时候
用空格隔开
设想你用for循环输入初始化一个a[16],中间用逗号隔开吗?
jixiang1983 2012-02-29
  • 打赏
  • 举报
回复
关键是要与输入函数scanf里写的格式一致,scanf里写了逗号,输入时必须加逗号;scanf是没写,输入时就不能用逗号,须用一个空格把输入的数据隔开;scanf里写了其它字符,输入时也写入其它字符,如scanf("%d kkk %d,&a,&b);输入时输入一个整数后输入3个k,再输入另一个整数,同样可以。
trust_myself 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 z1058017535 的回复:]

可能就是输入不匹配的问题,
没有初始化,可能也没有输入进去
所以出现了一些乱码
[/Quote]

用空格隔开的话,至少会有一个是对的,其他两个是乱码,应该是这样的吧?
不知道LZ有没有试过?
trust_myself 2012-02-28
  • 打赏
  • 举报
回复
LZ的意思大概是这样的
程序初始化打印下面的东西
enter a,b,c:
然后LZ开始进行输入:
a,b,c
最后程序打印的是下面的东西
a=-858993460 b=-858993460 c=-858993460
a=-858993460 b=-858993460 c=-858993460

LZ的a,b,c在定义的时候定义的是一个int型的,但是在界面输入的时候输入的却是一个字符,这样引起的一个问题,问题的根因我不太清楚,坐等高人解决。

但是LZ的输入肯定是有问题的,这个跟逗号不逗号的没什么关系,按照scanf里面的来就是了,主要是LZ的输入类型与程序中定义的变量类型不一致导致。
huiji0925 2012-02-28
  • 打赏
  • 举报
回复
确实如2楼所说,我用逗号运行结果没错,空格分开之后就出现乱码
z1058017535 2012-02-28
  • 打赏
  • 举报
回复
可能就是输入不匹配的问题,
没有初始化,可能也没有输入进去
所以出现了一些乱码
z1058017535 2012-02-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 mhlwjsso001 的回复:]

scanf里不能带逗号么?
同新手路过……
[/Quote]

带逗号是老谭教你吧
最好别带用空格隔开,

简单的输入可以带,复杂的最好别带
mhlwjsso001 2012-02-28
  • 打赏
  • 举报
回复
scanf里不能带逗号么?
同新手路过……
自信男孩 2012-02-28
  • 打赏
  • 举报
回复
你的输入时应该注意一下:因为你的scanf();中有逗号",",所以你在输入是也要加上逗号。比如你可以这样输入你的三个数据:10, 20, 30然后回车。
如果你的scanf()中把逗号","去掉,就不用在书中输入逗号了,你可以使用空格分开输入,或者输入一个数据后就回一次车。
我想你的输出出现未定义的值,主要是你的scanf();要求格式输入的和你实际输入的不匹配造成的。注意一下就可以了。
我的少年 2012-02-28
  • 打赏
  • 举报
回复
按照我自己的想法,运算出来之后的格式应该是。。。。。。

enter a,b,c:

a,b,c
a,b,c
c,a,b


但为什么不对,也很疑惑。。。。。。。。。。。。。。
Re:CCNA_CCNP 思科网络认证 动态路由 RIP 协议======================# RIP 协议中 network的作用 rip协议种network的应该怎么写 作用network 用来配置路由器:哪些接口参与到RIP协议中,功能如下: 接口能够发送和接收RIP数据包 该接口所在的网段被RIP协议通告出去 方法:分析接口属于哪个网络(子网掩码默认,故需先分清A、B、C类地址) 多个接口属于同一个网段(按A、B、C分类),只需写一个。 # RIP协议工作过程 静态路由存在的问题 RIP协议工作特点 配置RIP协议 查看RIP协议学习到的路由 network的应该怎么写 查看运行的RIP协议 查看RIP协议活动 RIPv1和RIPv2的区别 变长子网和等长子网 连续子网和不连续子网 RIPv2关闭自动汇总支持不连续子网 # 小型网络动态路由协议:RIP协议 路由信息协议RIP(Routing Information Protocol) 是一个真正的距离矢量路由选择协议。 它每隔30秒就送出自己完整的路由表到所有激活的接口。 建议终结端口可以关闭(#passive-interface fastEthernet 0/0) RIP协议选择最佳路径的标准就是跳数, 认为到达目标网络经过的路由器最少(跳数)的路径就是最佳路径。 暂时不以带宽为标准(后续...) 默认它所允许的最大跳数为15跳,也就是说16跳的距离将被认为是不可达的。 过期的路由信息被设置成16跳而非删除,原因为下次能够快速恢复 在小型网络中,RIP运转良好, 但是对于使用慢速WAN连接的大型网络或者安装有大量路由器的网络来说, 它的效率就很低了。建议EIGRP和OSPF协议更适合 # rip 协议工作原理(图解) # 验证RIP协议健壮性 观察RIP协议更新路由信息的活动 # RIP协议默认在网段类的边界自动汇总路由信息 不连续子网需要关闭RIP协议自动汇总功能 关闭RIP自动汇总的情况下:执行手工精确汇总 # RIP 协议定时器# RIP阻止路由环路的方案------------------------------------              
什么是共识算法背景分布式系统集群设计中面临着一个不可回避的问题,一致性问题对于系统中的多个服务节点,给定一系列操作,如何试图使全局对局部处理结果达成某种程度的一致?这个一致性问题大致有如下的场景:节点之间通讯不可靠的,延迟和阻塞节点的处理可能是错误的,甚至节点自身随时可能宕机节点作恶举例说明,就比如有两家电影院同时售卖总量一定的电影票,在这样的场景下,要如何设计方式来保证两家电影院协调同步不出现超卖或者错卖的问题呢?共识算法,就是解决对某一提案(目标,投票等各种协作工作),大家达成一致意见的过程比如上述的买票问题,就可以有如下的设计:1.每次卖票打电话给其他电影院,确认当前票数2.协商售卖时间,比如一三五A卖,二四六B卖3.成立个第三方存票机构,它统一发票通过以上的设计,可以看出一个很重要的解决一致性算法的解决思路,即:将可能引发不一致的并行操作进行串行化,就是现在计算机系统里处理分布式一致性问题基础思路和唯一秘诀著名的共识设计理论FLP 不可能性原理  共识算法的理论下限提出该定理的论文是由 Fischer, Lynch 和 Patterson 三位作者于 1985 年发表,该论文后来获得了 Dijkstra(就是发明最短路径算法的那位)奖。FLP 原理认为对于允许节点失效情况下,纯粹异步系统无法确保一致性在有限时间内完成。三人三房间投票例子三个人在不同房间,进行投票(投票结果是 0 或者 1)。三个人彼此可以通过电话进行沟通,但经常有人时不时地睡着。比如某个时候,A 投票 0,B 投票 1,C 收到了两人的投票,然后 C 睡着了。A 和 B 则永远无法在有限时间内获知最终的结果。如果可以重新投票,则类似情形每次在取得结果前发生带入到计算机领域就是说,即便在网络通信可靠情况下,一个可扩展的分布式系统的共识问题的下限是无解。即可靠性的下限是0%CAP  分布式系统领域的重要原理CAP 原理最早由 Eric Brewer 在 2000 年,ACM 组织的一个研讨上提出猜想,后来 Lynch 等人进行了证明• C(一致性):所有的节点上的数据时刻保持同步,即数据一致• A(可用性):每个请求都能在一定时间内接受到一个响应,即低延迟• P(分区容错):当系统发生分区时仍然可以运行的定理:任何分布式系统只可同时满足二点,没法三者兼顾。即数据一致,响应及时,可分区执行不可能同时满足。举个例子:一个分布式网路上,某一个节点有一组依赖数据A,当网络无延迟,无阻塞时,依赖于X的操作可正常进行。但网络无延迟阻塞在现实世界中是没法100%保证的,那么当网络异常时,必然产生分布式系统的分区和孤岛,那当一个执行操作在A分区之外时,如果要保证P,即当系统发生分区时仍可运行,就需要在分布式系统中多个节点有X的备份数据,以应对分区情况。则这时候就需要在C,A之间做出选择。假如选择C,即要保证数据在分布式网络中的一致性,那么就需要在X每次改动时,需要将全网节点的X数据同步刷新成最新的状态,那么在等待数据刷新完成之前,分布式系统是不可响应X的依赖操作的,即A的功能缺失假如选择A,即要突出低延迟的实时响应。那么在响应的时候,可能全节点的X数据并没有同步到最新的状态,则导致C的缺失。上面看上去有些绕,那么你只要记住这句话,CAP原理在分布式网络系统的应用讨论,其实就是讨论在允许网络发生故障的系统中,该选择一致性还是可靠性?如果系统重视一致性,那么可以基于ACID原则做系统设计即 Atomicity(原子性)、Consistency(一致性)、Isolation(隔离性)、Durability(持久性)。ACID 原则描述了对分布式数据库的一致性需求,同时付出了可用性的代价。• Atomicity:每次操作是原子的,要么成功,要么不执行;• Consistency:数据库的状态是一致的,无中间状态;• Isolation:各种操作彼此互相不影响;• Durability:状态的改变是持久的,不失效相应的有一个BASE原则,(Basic Availiability,Soft state,Eventually Consistency)则强调了可用性。经典的共识算法设计业内,针对节点异常的情况,有两种分类1.故障的,不响应的节点,成为非拜占庭错误2.恶意响应的节点,称为非拜占庭错误Paxos 最早的共识算法  非拜占庭算法的代表Paxos有三种角色:• proposer:提出一个提案,等待大家批准为结案。客户端担任该角色;• acceptor:负责对提案进行投票。往往是服务端担任该角色;• learner:被告知结案结果,并与之统一,不参与投票过程。即普通节点系统运行由proposer驱动,当合法提案在一定时间内收到1/2以上投票后达成共识。 
Django框架概述Django 是用 Python 开发的一个免费开源的 Web 框架,提供了许多网站后台开发经常用到的模块,使开发者能够专注于业务部分。并且囊括的 Web 应用部分可以用于快速搭建高性能、优雅的网站。并且提供了通用 Web 开发模式的高度抽象,通过 DRY(Don't Repeat Yourself,不要重复自己)的理念为频繁进行的编程作业提供了快速解决方法。Django的特点1.自带管理后台 简单的几行代码就可以让目标网站拥有一个强大的管理后台,轻松对内容进行增加、删除、修改与查找操作,以及很方便地定制搜索、过滤等操作,因此特别适合用于内容管理平台。 2.灵活的路由系统 定义优雅的访问地址,还可伴随项目进行配置。 3.强大的数据库 ORM 强大的数据库操作接口(QuerySet API)可以轻松执行原生 SQL。 4.易用的模板系统 基于前后端分离系统可用 Django 开发 API,不使用模板系统,并也可以轻易替换成其他模板。 5.缓存系统 与 Memcached,Redis 等缓存系统联合使用,获得更快的加载速度,并且配置简单。 6.国际化支持 支持多语言应用,允许定义翻译的文字,轻松翻译成不同国家/地区的语言。 Django 发布情况功能版本(A.B,A.B+1,如 2.0,2.1 等)大约每 8 个月发布一次。这些版本将包含新功能以及对现有功能的改进等,也可能包含与上一个版本不兼容的功能,详细的说明在版本的发布日志(Release Notes)中可以查阅到。补丁版本(A.B.C,如 2.1.3)根据需要发布,以修复错误和安全问题。这些版本将与相关的功能版本 100% 兼容,除非是出于安全原因或为了防止数据丢失而无法做到 100% 兼容。正因为如此,如果之前使用的是 Django 3.0,现在最新的版本是 Django 3.0.3,那么可以放心将 3.0 版本升级到 3.0.3版本。某些功能版本被指定为长期支持(LTS)版本,这种稳定版本通常自发布之日起 3 年以内,持续发布安全和关键补丁,即所谓提供持续稳定的支持。从 Django 2.0 开始,它不再支持 Python 2。下图演示了 Django 各版本的发布情况和支持计划 Django 的 MVT 架构简介Django 是一个 Python Web 框架,和大多数框架一样支持 MVC模式。通过学习 MVC(Model-View-Controller)模式,了解 Django MVT(Model-View-Template)的不同之处。1.MVC 模式 MVC 是开发 Web 应用程序的一种软件设计模式,其中各部分功能如下: 模型(Model):位于模式底层,负责管理应用程序的数据。它处理来自视图的请求,并且响应来自控制器的指令以更新自身。 视图(View):负责向用户以特定格式呈现全部或部分数据。 控制器(Controller):控制模型和视图之间交互的代码。MVT 模式 MVT 与 MVC 区别在于 Django 本身已经实现了控制器(Controller)这部分的功能,暴露给开发者的是模板(Template)。所以可以简单认为 Django 中的模板是 HTML 文件,但其支持 Django 的模板语言。这种模板语言简单来说就是通过占位符、循环、逻辑判断等来控制页面上的内容展示。 Django 和其他 Python Web 框架的对比用于 Python Web 开发的框架有很多,比如 Flask、Bottle、Pyramid、Webpy 等。1. Django 和 Flask 的对比 Flask 是小而精的微框架(Micro Framework),它不像 Django 那样大而全。如果使用 Flask 开发,开发者需要自己决定使用哪个数据库 ORM、模板系统、用户认证系统等,需要自己去组装这些系统。与 Django 开发相比,开发者在项目开始的时候可能需要花更多的时间去了解、挑选各个组件,正因为这样,Flask 开发的灵活度更高,开发者可以根据自己的需要去选择合适的插件。由于是自己一步步地将整个系统组装起来的,因此也比较容易了解各个组件部分。当然,Flask 历史相对更短,第三方 App 自然没有 Django 那么全面。2. Django 和 Tornado 的对比 Tornado 是一个 Python Web 框架和异步网络库,最初由 FriendFeed 开发,当初设计它的目的是为了解决 10000 个并发连接(C10K 问题)。传统的 Apache 服务器为每个 HTTP 请求连接一个线程,而在大多数 Linux 发行版中默认线程堆(Heap)大小是 8MB,当连接数量过多时,这种线程池的方式极易耗光服务器上的所有资源。Tornado 把等待资源的操作挂起,当数据准备好时,再回调相应的函数。通过使用非阻塞网络 I/O,Tornado 可以轻松应对数万个连接。因而 Tornado 也就成为长轮询,是 WebSocket 和其他需要与每个用户建立长期连接的应用程序的理想选择。和 Django 相比,使用 Tornado 编写异步代码对于开发者来说,没有 Django 或 Flask 编写同步代码那么简单、直接和高效。使用 Python 进行 Web 开发合适吗?Python 简单易学、上手快速,成为很多程序员喜爱的编程语言。使用 Python 进行 Web 应用开发,无疑能够加快需求实现的速度,快速迭代和验证产品的原型。有些人可能有疑问:Python 性能不够好,用来开发 Web 是不是不太合适?Python 在性能上确实无法和 C语言、Java 等语言相比,但在大部分情况下使用 Python 开发是可以满足性能需求的,并且很多时候程序性能不够好,这不是语言本身的问题,而是架构设计、缓存设计、数据结构算法的选用以及开发人员编程水平等引起的问题。总之,使用 Python 语言进行 Web 开发有独特的优势,通常能满足大部分应用场景的需求。 

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧