新手小白学习计算机的第六天(老王专场)
#define_CRT_SECURE_NO_WARNINGS#includestdio.h//int main()//{// int n 0;// while (n 3);//该行末尾带分号和不带分号输出结果完全不一样// printf(n is %d\n, n);// printf(Thats all this program does.\n);//// return 0;//}//int main()//{// int i 0;// for (i 1; i 10; i)// {// printf(%d\n, i);// }//// return 0;//}//计算1~100之间3的倍数的数字之和// 代码1//int main()//{// int i 0;// int a 0;//// for (i 3; i 100; i)// {// 产生3的倍数// if (i % 3 0)// {// printf(%d为3的倍数\n, i);// a a i;// }//// }// printf(1-100之间3的倍数的和为%d\n, a);//// return 0;//}//改进// 代码2//int main()//{// int i 0;// int a 0;//// for (i 3; i 100; i 3)// {////// printf(%d为3的倍数\n, i);// a a i;////// }// printf(1-100之间3的倍数的和为%d\n, a);//// return 0;//}//改代码相较与上一个代码省略了判断部分执行效率更高//一个代码是100次循环加上100次判断改代码循环次数较少且没有判断//int main()//{// int num 0;//// for (printf(Keep entering numbers!\n); num ! 6;)// scanf(%d, num);// printf(Thats the one I want !\n);// return 0;//}//输入一个正整数输出这个正整数是几位数// 代码1//int main()//{// int num 0;// int count 0;// int a 0;// printf(请输入一个正整数\n);// scanf(%d, num);// do// {//// a num / 10;// //假设输入123num123a12.count1// //然后while判断num1230合理继续进行回到anum/10// //此时num仍然是123又重复了一遍第一次的运行方式// //并没有得到想要的结果// ////我们预想num/10后12将12赋值给a用a来判断// 但是在这里a的值为12后就不会再发生变化因为num/10之后的结果// 并没有自己保留下来只是赋给了a所以应该让输入的这个正整数自身// 发生变化并用这个变化的值作为判断条件来进行判断。// count;//// } while (a ! 0);// printf(这个正整数是%d位数\n,count);// return 0;//}//代码2//int main()//{// int num 0;// int count 0;// printf(请输入一个正整数\n);// scanf(%d, num);// do// {// count;// 将count放在num/10之前的原因只要输入一个数字这个数字至少// 有一位数所以将计数器提前。//// num / 10;//// } while (num );// printf(这个正整数是%d位数\n,count);// return 0;//}//在屏幕上打印1~10的值// #include stdio.h////int main()//{// int i 1;// do// {// printf(%d , i);// i i 1;// }while (i 10);//// return 0;//}//输⼊⼀个正整数计算这个整数是⼏位数//例如//输⼊1234 输出4//输⼊12 输出2//#include stdio.h////int main()//{// int n 0;// scanf(%d, n);// int cnt 0;// do// {// cnt;// n n / 10;// } while (n);// printf(%d\n, cnt);// return 0;//}//break举例//#include stdio.h//int main()//{// int i 1;// while (i 10)// {// if (i 5)// break;//当i等于5后就执⾏break循环就终⽌了// printf(%d , i);// i i 1;// }// return 0;//}//上⾯的代码如果把 break 换成 continue 会是什么结果呢// #include stdio.h// int main()// {// int i 1;// while (i 10)// {// if (i 5)// continue;// //当i等于5后就执⾏continue直接跳过continue的代码去循环的判断的地⽅// 10 //因为这⾥跳过了i i1所以i⼀直为5程序陷⼊和死循环// 11 printf(%d , i);// i i 1;// }// return 0;// }//#include stdio.h// int main()//{// int i 1;// for (i 1; i 10; i)// {// if (i 5)// break;// printf(%d , i);// }// return 0;// }//上⾯的代码如果把 break 换成 continue 会是什么结果呢// #include stdio.h// int main()//{// int i 1;// for (i 1; i 10; i)// {// if (i 5)// continue;//这⾥continue跳过了后边的打印来到了i的调整部分// printf(%d , i);// }// return 0;//}//题⽬解析//1. 要从100~200之间找出素数⾸先得有100~200之间的数这⾥可以使⽤循环解决。//2. 假设要判断i是否为素数需要拿2~i - 1之间的数字去试除i//需要产⽣2~i - 1之间的数字也可以使⽤循环解决。//3. 如果2~i - 1之间有数字能整除i则i不是素数如果都不能整除则i是素数。//#include stdio.h//int main()//{// int i 0;// //循环产⽣100~200的数字// for (i 100; i 200; i)// {// //判断i是否为素数// //循环产⽣2~i-1之间的数字// int j 0;// int flag 1;//假设i是素数//////// for (j 2; j i; j)// {// if (i % j 0)// {// flag 0;// break;// }// }// if (flag 1)// printf(%d , i);//// }// return 0;////}//goto 语句//C语⾔提供了⼀种⾮常特别的语法就是 goto 语句和跳转标号 goto 语句可以实现在同⼀个函数//内跳转到设置好的标号处。//#include stdio.h//int main()// {// printf(hehe\n);// goto next;// printf(haha\n);//// next:// printf(跳过了haha的打印\n);// return 0;// }//goto 语句如果使⽤的不当就会导致在函数内部随意乱跳转打乱程序的执⾏流程所以我们的建//议是能不⽤尽量不去使⽤但是 goto 语句也不是⼀⽆是处在多层循环的代码中如果想快速跳//出使⽤ goto 就⾮常的⽅便了。//for (...)// {// for (...)// {// for (...)// {// if (disaster)// goto error;// }// }// }//// error:////...//本来 for 循环想提前退出得使⽤ break ⼀个 break 只能跳出⼀层 for 循环如果3层循环嵌套//就得使⽤3个 break 才能跳出循环所以在这种情况下我们使⽤ goto 语句就会更加的快捷。