ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

新手小白学习计算机的第六天(老王专场)

新手小白学习计算机的第六天(老王专场)
#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>//int main()//{// int n = 0;// while (n++ < 3);//该行末尾带分号和不带分号输出结果完全不一样// printf("n is %d\n", n);// printf("That's 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("That's 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;// //假设输入123,num=123,a=12.count=1;// //然后while判断num=123!=0合理,继续进行,回到a=num/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 = i+1,所以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 语句就会更加的快捷。
返回列表