#include<stdio.h> main()int a,b,t; scanf("%d,%d",&a,&b); if(a>b){a=b,b=a;} printf("%d,%d/n",a,b); }#include<stdio.h> void main() { int a,b,t; scanf("%d,%d",&a,&b); if(a>b){t=b;b=a;a=t;} printf("%d,%d\n",a,b); }...
include<stdio.h> void main(){ int y,a;y=2,a=1;while(y--!=-1) //y=2时,执行循环。因为有y--,进入循环前,y=1。{ do { a*=y; //a=1*1=1 a++; //a++后,a=2 } while(y--); //y--后,y=0。再返回do执行,第二次循环结束后,a=1,y=-1。} //返回外循环...
关键在于这一语句的理解 c=(a+=a++);1、先看右边括号中的 a+=a++,对于它,再看等号右边,右边 a 先执行运算,再加1,所以先执行a+=a; 得到a=10,将a的值赋于c 2、再执行a++,10加1就得到了11
有一个问题要搞清楚,以0开头的数默认是八进制,八进制的011是十进制的9,++a;是先把a的值加1,再取值,所以++a;的值是十进制的10,而%x是以十六进制的方式显示,而十进制的10对应的十六进制是a,b是十进制的101,b++;是先取b的值,再把b的值加1,所以b++;的值是101,而%o是是以八...
1,因为a等于100,所以走else分支:printf("%d\n",a<=100);2,a<=100 是个关系表达式,它的返回值是真或者假,在c语言中1是真,0是假 3, 因为a<=100是真, 打印出1
a+=a*=a-=a*=3应该从后向前这样拆开计算:a*=3;a-=a;a*=a;a+=a;最后, a为0
等效如下 include<stdio.h>void main( ){int s,t,a,b;a=2; b=4;s=t=1;if(a>0) s+=1; //a>0成立, s自加为2if(a>b) t=s+t;//这里三个 a>b不成立else if(a==b) t=5;//a==b不成立else t=2*s;//执行这个 t=2*s=4printf(“%d\n”,t);//输出4} ...
include <stdio.h> int main(){ int a[10];int i,j,t;printf("input 10 numbers:\n");for(i=0;i<10;i++)scanf("%d\n",&a[i]);printf("\n");for(j=0;j<9;j++)for(i=0;i<9-j;i++)if(a[i]>a[i+1]){ t=a[i];a[i]=a[i+1];a[i+1]=t;} printf("...
printf("%f",c=a/b+0.4); --- 这个写法有问题。c 是 整型,不能用 %f 格式,只能用 %d 格式。a/b -- 整型 除以 整型 得 整型,8/5 得 1,是否是你想要的?可以用:include <stdio.h> main( ) { int a=8,b=5;float c;c = (float)a/b+0.4;printf("%f",c);} ...
a<<2;相当于a乘以2的2次方 a<<b 相当于是a乘以2的b次方。