一、模块化设计
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 5 void openbaidu(){ 6 ShellExecuteA(0,"open","https://www.baidu.com",0,0,3); 7 } 8 void closebaidu(){ 9 system("taskkill /f /im 360se.exe"); 10 } 11 void clickbaidu(){ 12 /*SetWindowPos 13 MOUSE_EVENT*/ 14 SetCursorPos(36,116);//设置鼠标位置 15 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 16 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起 17 //mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 18 //mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起 19 } 20 21 //模块化设计:1.打开浏览器(百度) 2.打开网页 3.关闭浏览器 22 void main(){ 23 while(1){ 24 openbaidu(); 25 Sleep(5000);//休眠5秒钟 26 clickbaidu(); 27 Sleep(2000); 28 closebaidu(); 29 Sleep(1000); 30 } 31 }
二、顺序结构
打开屏幕左上角的计算器,等待2秒,关闭计算器
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 5 void main(){ 6 SetCursorPos(40,30); 7 Sleep(200); 8 //双击左键 9 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);//鼠标左键按下 10 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);//鼠标左键抬起 11 mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0); 12 mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); 13 Sleep(2000); 14 system("taskkill /f /im calc.exe"); 15 system("pause"); 16 }
三、分支结构
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<windows.h> 4 5 void main0(){ 6 if(-1){//0不执行,非0执行块语句 7 //0隐藏 1正常 3最大化 6最小化 8 ShellExecuteA(0,"open","http://www.taobao.com",0,0,1); 9 } 10 printf("hello taobao"); 11 system("pause"); 12 } 13 14 void main1(){ 15 int i=0; 16 //每7秒打开百度,每11秒打开淘宝 17 while(1){ 18 if(i%7==0){ 19 ShellExecuteA(0,"open","http://www.baidu.com",0,0,1); 20 } 21 if(i%11==0){ 22 ShellExecuteA(0,"open","http://www.taobao.com",0,0,1); 23 } 24 if(i%13==0){ 25 system("taskkill /f /im 360se.exe"); 26 } 27 28 Sleep(1000); 29 i++; 30 printf("第%d秒 ",i); 31 } 32 } 33 34 void main(){ 35 int num; 36 scanf("%d",&num); 37 if(num){//判断num是否为0 38 printf("gogogogo"); 39 } 40 system("pause"); 41 }
三个数,按从大到小排列
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void main(){ 5 //从大到小,a最大,c最小 6 double a,b,c,temp; 7 //scanf("%f%f%f",&a,&b,&c); 8 scanf("%lf%lf%lf",&a,&b,&c);//double类型数据,需要用 %lf 格式符 9 printf("a=%f,b=%f,c=%f",a,b,c); 10 if(a<b){ 11 temp=a; 12 a=b; 13 b=temp; 14 } 15 if(a<c){ 16 temp=a; 17 a=c; 18 c=temp; 19 } 20 if(b<c){ 21 temp=b; 22 b=c; 23 c=temp; 24 } 25 printf(" %f,%f,%f",a,b,c); 26 system("pause"); 27 }
输出绝对值大的数
1 #include<stdio.h> 2 #include<stdlib.h> 3 4 void main(){ 5 int x,y; 6 unsigned int x1,y1; 7 scanf("%d%d",&x,&y); 8 if(x>=0){ 9 x1=x; 10 }else 11 { 12 x1=-1*x; 13 } 14 if(y>=0) y1=y; 15 else 16 { 17 y1=-1*y; 18 } 19 printf("%d",x1>y1?x:y); 20 21 system("pause"); 22 }
四、逻辑嵌套(求解一元二次方程)
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 void main(){ 5 int a,b,c; 6 double delt; 7 printf("请输入a,b,c的值:"); 8 scanf("%d%d%d",&a,&b,&c); 9 printf("%d*x*x+%d*x+%d=0 ",a,b,c); 10 //逻辑嵌套 11 if(a==0){ 12 if(b==0){ 13 if(c==0){ 14 printf("x为任意解"); 15 }else 16 { 17 printf("无解"); 18 } 19 }else{ 20 printf("x= %f",-1.0*c/b);//一元一次方程 21 } 22 }else{ 23 delt=b*b-4*a*c; 24 if(delt<0){ 25 printf("方程只有两个虚根:x1=%f+%fi,x2=%f-%fi",-1.0*b/2/a,sqrt(-delt)/2/a,-1.0*b/2/a,sqrt(-delt)/2/a); 26 }else{ 27 printf("方程有两个实根:x1=%f,x2=%f",(-b+sqrt(delt))/2/a,(-b-sqrt(delt))/2/a); 28 } 29 } 30 system("pause"); 31 }
四、switch语句
1 #include<stdio.h> 2 #include<stdlib.h> 3 void main(){ 4 int num; 5 scanf("%d",&num); 6 printf("%d",num); 7 switch (num) 8 { 9 case 10://几个case分支没有顺序区别 10 printf("司令"); 11 break; 12 case 9: 13 printf("军长"); 14 break; 15 case 8: 16 printf("师长"); 17 break; 18 case 7: 19 printf("旅长"); 20 break; 21 case 6: 22 printf("团长"); 23 break; 24 case 5: 25 printf("营长"); 26 break; 27 case 4: 28 printf("连长"); 29 break; 30 case 3: 31 printf("排长"); 32 break; 33 case 2: 34 printf("班长"); 35 break; 36 case 1: 37 printf("小组长"); 38 break; 39 case 0: 40 case -1://共用语句 41 printf("大兵阿飞"); 42 break; 43 default://switch语句中可以不含default分支 44 printf("输入错误"); 45 break; 46 } 47 system("pause"); 48 }