
1.求1-100中3的倍数之和int main() { //求1-100中3的倍数之和 int i 0; int sum 0; //for (i1; i 100; i) //{ // { // if (i % 3 0) // sum i; // } //} for (i 3; i 100; i3) { sum i; } printf(%d, sum); return 0; }可以把I设置为3每次加3因为要求3的倍数所以这样做可以简化代码2.求数字位数例如1234有4位因此屏幕上打印数字4int main() { int cnt 0; int n 0; scanf(%d, n); do { cnt; n / 10; } while (n); printf(%d, cnt); return 0; }引出一个cnt计数器每当n除以10时cnt加1运用do while循环当n为0时跳出循环打印cnt,cnt即为数字位数3.continue和break的区别int main() { int i 1; while (i 10) { if (i 5) continue;//结束循环后面的代码 printf(%d, i); i; } return 0; }此代码执行后为无限循环下去因为continue为结束本次循环结束循环后面的代码而break和continue的区别是break是直接跳出循环。4.求100-200之间的素数int main() { //找到100-200中间所有的素数 int i 0; for (i 100; i 200; i) { int flag 1;//假设i为素数 int j 0; for (j 2; j i - 1; j) { if (i % j 0) { flag 0;//不是素数 break; } } if (flag 1) { printf(%d\n, i); } } return 0; }素数是除了1和它自己本身外不会有任何一个数能将它整除因此引入变量j使它从2开始直到i-1结束每次循环加1让j对i取余看是否能整除。同时引入变量flag初始化为1若能整除则不是素数则给flag赋值为0并且跳出循环若没有j能整除则i为素数此时flag仍为1打印i。int main() { //找到100-200中间所有的素数 int i 0; for (i 100; i 200; i) { int j 0; for (j 2; j i - 1; j) { if (i % j 0) { break; } } if (j i - 1) { printf(%d\n, i); } } return 0; }但是如果不引入flag则判断j是否大于i-1若大于i-1则也为素数打印iint main() { //找到100-200中间所有的素数 int i 0; for (i 101; i 200; i2)//偶数不可能为素数少了一半数据 { int flag 1;//假设i为素数 int j 0; for (j 2; j i - 1; j) { if (i % j 0) { flag 0;//不是素数 break; } } if (flag 1) { printf(%d\n, i); } } return 0; }此代码还可以简化因为偶数不可能为素数则让i从101出发每次加2只判断奇数是否为素数即可这样可以简化代码时代码少一半数据。#includemath.h int main() { //找到100-200中间所有的素数 int i 0; for (i 101; i 200; i 2)//偶数不可能为素数少了一半数据 { int flag 1;//假设i为素数 int j 0; for (j 2; j sqrt(i); j) { if (i % j 0) { flag 0;//不是素数 break; } } if (flag 1) { printf(%d\n, i); } } return 0; }代码在以上基础上仍旧可以简化。引入开平方sqrt(),包含头文件math.h6.goto语句int main() { printf(hahaha\n); goto next; printf(hehehe\n); next: printf(heiehi\n); return 0; } int main() { next: printf(hahaha\n); printf(hehehe\n); goto next; return 0; }goto语句可以实现跳转一般不会使用在多层循环嵌套时才会使用goto来实现语句的跳转