printf-# 1,解释答案怎样出来的?

问题描述

# 1,解释答案怎样出来的? 2C

1,解释答案怎样出来的?

#include
int main()y
{int y=10;
while(y--);
printf(""y=%dn""y);}
执行结果是()

解决方案

http://codepad.org/pAgNAJLu
在线编译器权威验证。

解决方案二:
y = -1。当y=0时,退出循环,然后y再减1,等于-1。y++或y--都是先读值,再运算

解决方案三:
楼主问题是在于为什么输出的是-1,而不是0么? 还是为很么只打印出一个数?
如果后者的话,那么caozhy的答案正解。
如果前者的话,是因为--y 和 y-- 是不同的,--y你可以理解为while((y-=1)) 如果y--的话你可以理解为while(y) y-=1;
虽然--y和y--都是y自减1,但是--y返回的是y-1之后的值(y值先-1,然后再参与运算),y--是返回y-1之前的值(先取y的值进行运算,然后在-1)。

解决方案四:
执行结果括号里面啥都没有吗

解决方案五:
正确结果是y=-1,怀疑你的代码可能while后面不应该有;

解决方案六:
这个不会是面试题吧 看你是不是细心 然后对自增自减的理解

解决方案七:
while(y--) 先判断y 是否大于0,然后y--;当y=0时,while判断后又执行y--,打印出-1.

解决方案八:
while(y--) 先判断y 是否大于0,然后y--;当y=0时,while判断后又执行y--,打印出-1.

解决方案九:
while语句后的分号相当于一对空的大括号, 所以打印-1

解决方案十:
y--是程序先循环在减一,当y=0时,程序退出循环,之后在减一,就会执行输出语句。如果程序是--y则程序会输出y=0;

时间: 2024-11-16 13:06:09

printf-# 1,解释答案怎样出来的?的相关文章

从一道面试题分析Linux进程+IO缓冲区机制

父子孙-两次FORK,2的三次方 下面的程序打印出多少个"*"    (小弟今年遇到的腾讯一面面试题,据说其他公司的面试题中也有这个题目) [cpp] view plaincopyprint? #include <unistd.h>   #include <stdio.h>      int main()   {       for (int i = 0; i < 2; i++)       {           fork();           pr

教你输入法如何避免错别字

由"撼"与"捍"引发的热议引人深思,过分依赖输入法,导致提笔忘字现象时有发生,到底我们该如何避免对输入法的依赖和越来越多的科技依赖,以及对我们日常的听说读写造成的影响?相信一个"撼"字的错误并不是一次意外,那么如何避免过分的依赖输入法?本文将为你系统的解释答案. 如果因为读音相同而出现的错字,可能是使用了拼音输入法写出这两行字,再将字制到锦旗上.当然这只是编辑的猜测,文化单位方面已做出道歉,咱们也就不深究了.但使用拼音输入法时也要注意同音字输入错

c++函数调用-C++编程找出1到100之间的所有孪生素数

问题描述 C++编程找出1到100之间的所有孪生素数 第二题,求用简单的C++语句啊,大一小白,这是作业表示不会,帮帮忙, 解决方案 #include #include #include using namespace std; bool isPrime(int num){ if ((num == 1) || (num == 2)) { return true; } for (int i = 2; i <= num / 2; i++){ if (num % i == 0) return fals

iostream-将一个正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5

问题描述 将一个正整数分解质因数.例如:输入 90, 打印出 90=2*3*3*5 #include using namespace std; void fnabs(int n) { int i; for(i=2;i<=n;i++) { while(n%i==0) {n/=i; cout<<"*"<<i;} } } int main() { int n; n=90; cout<<n<<"="; fnabs(n);

格式化字符串攻击 《转》

翻译:     xuzq@chinasafer.com 内容:         介绍         什么是格式化字符串攻击?         Printf-学校忘记教给你的东西         简单的例子         来格式化吧!(Format Me!)         X MARKS THE SPOT(X是本文示例程序中我们试图重写的一个变量,这句我不知 道如何翻译)         怎么着(So what)? 摘要 本文讨论格式化字符串漏洞的成因和含义,并给出实际的例子来解释原理.介绍

指针-@C语言大神,这程序谭浩强给的答案看不懂,求解释?

问题描述 @C语言大神,这程序谭浩强给的答案看不懂,求解释? //题目:输出字符串里数字团,以及个数.比如89cy129//就输出89,129,一共2个数.// 问题:后面一大段为啥要复制粘贴前面一大段的代码?//有什么用?求解释.而且运行也不对,求修改!跪谢! include int main() { char str[80],*pstr; int m,i=0,j=0,k=0,digit=0,ndigit=0,e10,a[80],*pa; pstr=&str[0];pa=&a[0]; g

阶乘 算法-网上找的c语言的求大数阶乘的答案 看不太懂这个算法 求大神解释算法

问题描述 网上找的c语言的求大数阶乘的答案 看不太懂这个算法 求大神解释算法 #include int main() { ??? int n; ??? int a[9000]; //确保保存最终运算结果的数组足够大 ???? int digit = 1; //位数 ???? int temp;?? //阶乘的任一元素与临时结果的某位的乘积结果 ???? int i, j, carry; //carry:进位 ???? printf("please in put n:n"); ??? s

编程c语言-&amp;amp;lt;The c programming language&amp;amp;gt;Exercise-23答案求解释。

问题描述 <The c programming language>Exercise-23答案求解释. 本人新手,下面是rick的答案,不明白的是 if( line[t] == ' " ') in_quote = 1; if( ! in_quote ) { } else {} 作者是怎样确保下面的if在双引号' " '内还是在双引号外的,求大神帮助.原代码在下面. #include #define MAXLINE 1000 /* max input line size / c

指针-C语言求教应该选哪个答案呢?并求详细解释

问题描述 C语言求教应该选哪个答案呢?并求详细解释 void *fun()此说明的含义是: A)fun函数无返回值 B)fun函数的返回值可以是任意的数据类型 C)fun函数的返回值是无值型的指针类型 D)指针fun指向一个函数,该函数无返回值 求教应该选哪个答案呢?并求详细解释 解决方案 答案选择:C 代码的意思是:定义一个函数指针. 比如:定义一个指向函数的指针,该函数有一个整形参数并返回一个整型值 int(*fun)(int): 再比如原来函数是void func(void): 那么定义的