2个c语言小问题,新手求解。第一个程序y为什么不是10?2题的23为什么为真?尽量详细点,谢谢!
这就是C语言中著名的“短路原则”问题。
所谓短路原则就是,在&&运算和||运算中,若能提前算出整个表达式的值,则第二个乃至后面所有表达式都不需要运算了。举例:
int a=1,b=2,m=0,n=0,k
k=a||(b=0); //k的值很明显就是1(当看到第一个表达式a时,1或上任何值都得1),因此b=0这个表达式就不需要运算,也就是b没有被赋值为0.
k=m&&(n=1); //k的值很明显就是0(当看到第一个表达式m时,0与上任何值都得0),因此n=1这个表达式就不需要运算,也就是n没有被赋值为1.
同理: k=m&&(n=1)&&...&&....&&...;//从n=1开始后面全部表达式都不需要计算了(||运算也同理)
你的不对,你的算式和题里面要求的根本就不一样,你好好看看,尤其是你的s+=pow(10,i)*a*x;这句。我写了个,也验证了,你看看
#include
int main()
{
int a,n,i;
unsigned long result=0,temp=0;
printf("Input a and n:");
scanf("%d %d",&a,&n);
for(i=0;i<n;i++)
{
temp=temp*10+a; //计算本次要加的数,2、22、222……
result+=temp;
}
printf("%lu",result);
return 0;
}
2,r=4,整个表达式值是4,非0即为真
3,相当于(0<r) < 1
其中0<r是假的,其值为0,
0 < 1,当然为真
一个小的C语言问题
执行第一个输出语句printf("\\n\\n%d,%d\\n",20\/7,-20\/7); %d表示整型,结果为整数,余数省略。那么20\/7就是等于2,-20\/7就是等于-2 了。 因为%d后面有个\\n是换行的作用。第二个输出语句printf("%f,%f\\n",20.0\/7,-20.0\/7); %f表示单精度浮点型,20.0\/7就是等于 2.857143,-20...
发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一个地址值罢了,直接用地址值和直接用指针,这没有任何区别,最多就是编译器会警告你一下。不知道你说的“”自己定义一个函数比如f(*pointer);然后在用这种方法就会报错“”是什么意思 看下面代码 include <stdio.h...
帮忙看一下C语言的小问题,谢谢,新手
这样显然错了 a,b,c没有被赋值 存放的是随机乱数 应该这样写程序 include <stdio.h> void main (){ int a,b,c,m;printf("请输入一个三位整数:\\n");scanf("%d",&m);a = m%10;\/\/各位 b = (m%100 - a)\/10;\/\/十位 c = (m - 10*b - a)\/100;\/\/百位 printf("%d,%d...
c语言问题:如何判断x的值小于等于a?
在C语言中,可以使用条件运算符<=来判断一个数x是否小于等于另一个数a。<=运算符的含义是“小于等于”,它会返回一个整数值1,如果x小于等于a,否则返回0。以下是一个简单的示例代码,展示了如何使用<=运算符来判断一个数是否小于等于另一个数:在这个示例代码中,x的值是5,a的值是10。if语句...
C语言的一个小问题
include <stdio.h> int main(void){ double data[100] = {0.0};double a = 2.0, b = 3.0, c = 4.0,f = 0.0;for(int i=0;i<100;++i){ f = a*b*c;data[i] = 1\/ f;printf("%0.21f\\n",data[i]);\/\/原先的l(小写L)改为1,变成0.21,后面加了要输出data[i...
C语言中的一个小问题
那个进士说的对,你要保证运算后的数不是整数的话,\/前后不能全是整数,只要有一个c就会自动把另外一相转化成高精度的那个进行运算,但不是整数自身的值改变,比如你的1\/5,两个都是整数,结果它就返回一个整数,你可以显式地加一个float或double转化它的类型。(double)1\/5;如果用进士提供的办法...
关于C语言的一个小问题,求大神们解答
从右往左算,若a=8,则 a+=a*=a\/=a-6 \/\/先算a-6 a+=a*=a\/=2 \/\/算a\/=2,即a=a\/2=8\/2=4 a+=a*=4 \/\/算a*=4,即a=a*4=4*4=16 a+=16 \/\/算a+=16,即a=a+16=16+16=32 a=32
关于c语言的一个小问题
const是一个C语言的关键字,它限定一个变量不允许被改变。也就是说定义了两个float变量MIN,MAX,值分别为0.0,100.0,在之后的代码中不允许修改MIN,MAX的值。注意:100.0后面f的作用是小数默认是double类型的,f的作用是将double类型强制转换为float类型。
关于学C语言的一个小问题
用单引号扩住的意思是表明里面的内容是一个字符。比如说:'a' 表示的是字符a,而 a 表示的是变量a。char类型变量只能赋予1个字符,两个字符是不行的。
一个简单的c语言问题,在线等啊。程序如下。
include<stdio.h> void sub(int x,int y,int &z) \/\/sub函数传入x y的值通过地址调用吧计算结果存储在地址为z的地方 { z=x-y; \/\/通过传入的x,y的值计算Z的值 } void main(void) \/\/程序入口 { int a,b,c; \/\/定义变量 sub(10,5,a); \/\/调用sub函数计算a的值 sub(...
敞竿左金: //第一个问题1、先弄明白复合语句是什么? 把多个语句用括号{}括起来组成的一个语句称复合语句2、举例:int main() { int a = 2; if...
乌鲁木齐县18862207876: 初学C语言问题求解... - ?
敞竿左金: c语言中有位操作,但没有位类型,假设有位类型,我们取名叫bit,那么bit这种类型的长度就是1,那么你说1位能表示多少个数呢?如果你是初学者可能会说10个数:0~9,但是计算机是使用二进制计数的,也就是说计算机只认识0和1,所以,...
乌鲁木齐县18862207876: C语言一段简单代码的问题(新手求解) - ?
敞竿左金: 你在return 0;前面加上两个getchar();或者在return 0;前面加上system("pause");就OK了……因为在winXP或vista或win7上面是不会暂停程序的……,也就是说虽然输入0显示了the Light is red,cars can't run,但是会一闪而过,因为程序...
乌鲁木齐县18862207876: 几个比较初级的c语言问题!!急求!! 1.猴子第一天摘下若干个桃子,当 - ?
敞竿左金: #include"stdio.h"intmain(){ charstr[20]={0}; inti,pos,len=0; printf("请输入一个字符串:"); gets(str); printf("请输入删除位置:"); scanf("%d",&pos); for(i=0;str[i]!='\0';i++) len++; if(pos+1>len) { printf("删除位置超过字符串长度\n"); return1; } for(i=pos;i
乌鲁木齐县18862207876: 问一个C语言新手问题?
敞竿左金: 2个问题:1:bool interview = false这个变量没写 ; 号,这也是你设置的一个变量 所以需要分好2:第一个printf拼成prinft了...这绝对手误
乌鲁木齐县18862207876: C语言简单题目.新手做的第一个题目.?
敞竿左金: main{int sum,n,j;/*sum总和,n输入数,j循环记数*/ scanf("%d",&n);/*输入数*/ printf("%d ",n);/*打印数并加打印一个空格*/ sum=0;/*总和初始成0*/ for(j=1;j<=n;j++);/*从1开始到输入的数结束*/ { printf("%d ",j); /*从1开始打印加一空格*/sum=sum+j;/*每打印一次把这个数加到总和里*/ } printf("%d ",sum);/*打印总和*/}
乌鲁木齐县18862207876: C语言新手提问?
敞竿左金: 第一个问题,#include "stdio.h"是标准函数库的头文件,如果要使用标准函数,就要加入此头文件,可以printf 和scanf两个函数可以不用. 第二个问题,return 0是函数的返回值为0,因为你的程序里定义主函数为int 类型,所以在形式上要有返回值的.而C语言中函数都应有一个返回值的,除非定义函数时说明为void也就无返回值函数. 像你的这个程序很简单就是不写返回值,也可以执行,但是要是函数多了可能会出错.所以在教学和科研中要求要严格按照语法来写C函数. 其实C函数也是C语言的一大特点,是C语言的灵魂.如果不会使用函数,就不能说你学会了C语言.
乌鲁木齐县18862207876: 两个不会的C语言程序,求解. - ?
敞竿左金: 第一题 #include #include main(){ int i,j; for(i=1;i<=8;i++) { for(j=1;j<=i;j++) printf("%d ",j); j--; while(--j) printf("...
乌鲁木齐县18862207876: 2个简单的C语言问题 - ?
敞竿左金: 1#include "stdio.h" void main() { int a1,b1,c1,a2,b2,c2; float x,y; printf("input funtion1:"); scanf("%d,%d,%d",&a1,&b1,&c1); printf("input funtion2:"); scanf("%d,%d,%d",&a2,&b2,&c2); x=(c1*b2-c2*b1)/(a1*b2-a2*b1); y=(c2*a1-c1*a2)/(a...
乌鲁木齐县18862207876: 初学者关于C语言小问题 - ?
敞竿左金: 1. %f, %d是C语言标准输入输出函数scanf和printf的输入输出时必须使用的格式符. 2.浮点型,整型,是C语言可以使用的数据类型,使用各种数据类型,才能处理不同形式的数据.例如,123,25,A,c等,就要分别定义整型和字符型,C语言才能...