开启我的第一个博客我是一个准大二新生我在这个暑假开启了嵌入式的学习我将通过记录我的学习历程不断记录自己保持习惯希望大家多多指导我的c语言学习是跟着浙大翁恺老师进行的所以题源均为翁恺老师的课程但是代码是自己写的或许输出结果相符但是大多数地方有逻辑混乱的地方。以下是这几天学习的代码我将分为题目思路和最终呈现输出以及自己的一些感悟我的代码比较粗糙非常想要得到各位大神指点1.输出前五十个素数有确定的数量通过设置一个计数量cnt来确定循环结束利用中间量isprime表达素数每个循环重置isprime素数从2开始#includestdio.hintmain(){intx2;intcnt0;while(cnt50)//计数法输出前五十个符合条件的数{intn2;intisprime1;//中间量避免混乱默认为素数减少判断for(n2;nx;n)//确定素数{if(x%n0)isprime0;}if(isprime1){printf(%d ,x);cnt;}x;}printf(\n);printf(%d,cnt);//确定数量return0;}2正整数分割输入一个正整数输出它单独的每位数例如输入354输出3 5 4思考过程先想办法得到每位数取余得到最后一个数字然后通过除十去掉最后一个数字但是这样printf出来是他的逆反数所以先提前把这个正整数变为他的逆反数再输出#includestdio.hintmain(){intx354;//scanf(%d,x);csdn演示就直接使用一个具体值了intyx;//记录原始值inttime1,sum0;while(y9){time*10;y/10;}do//第一个循环得到逆反数sum{intax%10;suma*time;x/10;time/10;}while(time1);do{intnsum%10;sum/10;printf(%d ,n);}while(sum0);return0;}3求两值的最大公约数学习了两种方法基础的思维模式是利用嵌套循环同时满足可以被两值整除#includestdio.hintmain(){inta12,b18;//scanf(%d %d,a,b);intmin;if(ab)minb;elsemina;inti1,ret;for(i1;imin;i){if(a%i0){if(b%i0){reti;}}}printf(%d是%d和%d的最大公约数,ret,a,b);return0;}方法二通过中间量和公式第一步判断b是否等于零不等于时设置tt为a除b的余数第二步使a等于bb等于t回到第一步判断当b等于零时停止此时的a就是最大公约数。#includestdio.hintmain(){inta12,b18;//scanf(%d %d,a,b);intt;do{ta%b;ab;bt;}while(b!0);printf(最大公约数是%d,a);return0;}