Ⅰ c语言简单的增量运算问题
main()
{
int a,b,c,d;
a=2;
b=(++a)*5 ; //(先自增,再运算;a=a+1=3,b=(a+1)*5=15)
c=(a++)*5; //(先运算,再自增;c=(a)*5=15,a=a+1=4)
d=b+c; //d=15+15=30;
printf("%d+%d=%d",b,c,d);//懂否?
getch();
}
Ⅱ c语言增量运算符的使用。
你的初始赋值i=1,
执行“while(i++<30)”这句时i=1;
但是这句执行结束后,通过“i++” 可得i=2,接着再执行下面的语句,也就是“n = 1.0/i;” 这句
也就是说当执行“n = 1.0/i;” 的时候i已经等于2了。
你可以将i的初始值赋值为0.
或者这么改一下
while(i<30)
{
n = 1.0/i;
printf("%f\n",n);
i++;
}
Ⅲ 关于C语言增量符号使用2
第一条、关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的:
1.后置运算:k++表示先运算,后自加。
意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。
那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号;表示
语句执行完了,所以k才自加1。】
2.前置运算:++k表示先自加,后运算
这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。
掌握好这两点,k--和--k也是一样的道理。
但是我不明白的是,m+=(j++)+(++j)+(j++)的结果是m=11。而m= m+ (j++)+(++j)+(j++);的结果是m=10。
Ⅳ 关于C语言增量符号使用
这个问题虽小,但是学问挺大!!!@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@
【第一条】、关于自增自减运算,很多书籍没有把问题讲清楚,在C语言里是这样的:
1.后置运算:k++表示先运算,后自加。
意思是遇到k++了,我先把当前的k的值拿来参加运算,后面再去管它的自加。
那么,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到分号;表示
语句执行完了,所以k才自加1。】
2.前置运算:++k表示先自加,后运算
这个意思就是遇到++k了,先把k的值加了1,再往后执行别的。
掌握好这两点,k--和--k也是一样的道理。
【第二条】、对于多个自增自减运算组合时,在不同的编译器上运行时会有不同的结果。
但是在C语言里的组合顺序如gaozhen所说[“对于++ ,-- C编译系统在处理时尽可能多的(
自左往右)将若干个字符组成一个运算符”]。
结合这两点,我们就可以来解决这个问题了。
首先,根据【第二条】,结合顺序是a=a+++b+++c;等价于a=(a++)+(b++)+c;
其次,根据【第一条】,【“后面”后到什么程度呢?要后到当前的语句执行完,即遇到
分号;表示 语句执行完了,所以k才自加1。】
那么,就可以得到结果了。
先是不管自加的事情,取a、b的当前值(都是1)和c(值为1)相加赋给a,即a=1+1+1=3;
然后遇到分号语句结束时再去管自加1,即a+1,b+1。而a的当前值已经是3了,故
a=a+1=4;b的当前值是1,故b=b+1=2;
所以本题答案的正确结果是 4.
Ⅳ c语言怎样使循环语句每次+2循环
#include<stdio.h>
doublehuatoce(doublehua);
intmain()
{
//printf("Helloworld ");
inti;
for(i=0;i<100;i+=2)
{
printf("温度:%lf ",huatoce(i));
}
return(0);
}
doublehuatoce(doublehua)
{
return5*(hua-32)/9;
}
Ⅵ C语言练习题 怎么自增++c显示为2呢
你这个和++符号关系不大,是你写if-else语句有问题,你最后一个else匹配的if是if(b<0) c=0;这一句,也就是说当a小于b的时候直接输出c的值。你试试看把a的值设置的大于b的值。就能得到3了。祝学习愉快
Ⅶ c语言程序设计问题,在线等,急
三个办法都可以实现,但结束控制都有问题——控制变量增量都是2,怎么能保证最后一个[]中的值恰好是结束符'\0'?所以求出字符串长度,当[]中的值>=元素'\0'的下标时结束是比较可靠的办法。
Ⅷ C语言编程中for语句中如何表示值增加2
for语句的格式如下:
for(表达式1,表达式2,表达式3)
{
循环语句
}
可以通过表达式3来表示值增加2,如:
inti,a=0;
for(i=0;i<5;i=i+2)//通过表达式3,即i=i+2来表示值增2
{
a=a+i;
}
//程序执行完后,a的值为6(即0+2+4=6)
可以用下面的方式来实现:
inti,a=0;
for(i=0;i<5;)//表达式3为空
{
a=a+i;
i=i+2;//通过语句i=i+2来表示值增2
}
//程序执行完后,a的值为6(即0+2+4=6),与上面的结果一样。
Ⅸ c语言让一个变量循环加2怎么写
前略
int v;//v是变量
scanf("%d",&v);
int n;//n是次数
for(int i=1;i<=n;i++)
v+=2;
Ⅹ c语言怎么把*元素每行递增2个*元素输出
楼主是要输出由"*"组成的一个金字塔型吧。即输入 3 就显示:
*
***
*****
的结果吧。
如下程序在VC6.0的运行成功,并有一定纠错能力,即你输入了负数则要求重新输入
#include<stdio.h>
void main()
{
int input = 0;
int i = 0;
//输入你要显示的行数
printf("please input a number of row:\n");
scanf("%d",&input);
while(input <= 0)
{
//输入的值不合要求,重新输入
printf("input error!!\n");
printf("please input a number of row:\n");
scanf("%d",&input);
}
for(i = 1; i <= input; i++)
{
int j;
for(j = 0; j < input-i; j++)
{
printf(" "); //输入*前的空格
}
for(j = 0; j < i*2-1; j++)
{
printf("*"); //输出每行的*元素,个数随行数增加而增加
}
printf("\n"); //一行完成后换行
}
return;
}