输出1 2 while(k++ && n++ > 2); 先执行k++, k++使k变成1, 但是k++这条语句的结果是0, 如果 &&运算符前的语句为假则不执行后面的语句, 于是while循环退出, 注意while后面有分号, printf语句在while退出后才执行.所以输出1 2
main(){ char a[]="369",*p=a;int s=0,t=1;while(*++p) t*=10; //这里的while(*++p)是简写形式,它等价于while(*++p!=0)又等价于 while(*++p!='\0')。因为"*"和"++"的优先级相同,而且是自由向左结合,p先加1再指向a数组,所以在这条语句中刚开始p是指向a[1]的也...
int a[3][2]={(0,1),(2,3),(4,5)};int a[3][2]={{0,1},{2,3},{4,5}};两种方式赋值不同,第一种数组的值分别为1,3,5,0,0,0,第二种是0,1,2,3,4,5
我来给你解释一下:include<stdio.h> main(){ unsigned short a=65536;%这个就是无符号短整型变量 int b;printf("%d\n",b=a) ;%把一个无符号变量赋给一个有符号的变量。运算后的结果为0 } 为什么结果为零呢?其实很简单:是这样的:有符号变量的取值范围为-32678~32767,无符号变量的取值...
include <stdio.h> void main( ){ float x,y;scanf("%f",&x);/*输入自变量x*/ /*后面的一系列代码计算变量y*/ if(x<0.0)y=0.0; /*y=0,当x=0时*/ else if((x<5.0)&&(x!=2.0))y=1.0/(x+2.0); /*y=1/(x+2),当x<5而且x≠2时*/ else if(x<10.0)...
include <stdio.h> void main(void){ FILE *fp; int i, a[6]={1,2,3,4,5,6},k;fp = fopen("data.dat", "w+");for (i=0; i<6; i++){ fseek(fp, 0L, 0);fprintf(fp, "%d\n", a[i]);} rewind(fp);fscanf(fp, "%d", &k);fclose(fp);printf("%d\n", k)...
写错了;首先sum要赋值。。。如果是从1加到5的话,把sum+=sum改成sum+=i;如果你是想sum自加5次的话,不如直接写一句话sum*=5;
这题的关键在int *ptr=(int *)(&a+1);这一句上,&a表示取得数组a存储区域的首地址,再加1表示数组a存储区域的后的地址,这就使得ptr指针指向数组的最后一个元素后面的那个存储单元的地址,而ptr减1后,再进行数据访问,则访问的是ptr指针的前一个存储单元的值,所有最后的答案是2,5 ...
a,b,c,都等于0 if(!a) if语句里面表示的是相当于 if(!0) !0的等于1啊 所以简化成if(1)也就是说 条件成立 进行x--操作 现在的x=34. 而后面的else if(b)将不会执行,因为 if(!a) x--;else if(b) ;是连在一起的 接下来就执行下面的语句if(c) x=3;el...
#include<stdio.h> int main() { int max(int x,int y); int a,b,c; scanf("%d%d",&a,&b); c=max(inta,intb);printf("max=%d\n",c);return0;}这段代码有什么错误?... c=max(int a,int b);printf("max=%d\n",c);return 0;}这段代码有什么错误? 展开 我来答 ...