题目 解决代码及点评 /* 64. 任意两个互质的自然数, 经过若干次加减后,总可获得结果为1的数值. 所谓互质数(即互素的数),是指这两个数除 1外再没有其它公因数. 如14,9为互质数,又如187,79也是互质数. 例如:对于互质数14和9,14+14=28 9+9+9=27 因28-27=1, 目的达到.请 编程序对两个互质数验证上述结论. */ #include <stdio.h> #include <stdlib.h> void main() { int…
  题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的c/c++语言教科书都会有这个题目 用来演示循环语句 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { int x; int num=1; printf("please input x\n"); scanf_s("%d",&x); for (int i=1…
题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { float f; float c; float k; printf("please input the f\n"); scanf_s("%f", &f); // 注意不能写成5/9*(f-32),5/9两个整数相除结果是0 c = (f - 32) * 5 / 9; k = 273.16 + c; print…
   题目 解决代码及点评 在已经知道素数是怎么判断的基础上,增加循环,可以判断出100以内的素数 /************************************************************************/ /* 9. 打印1-100之间所有素数 */ /************************************************************************/ #include <stdio.h> #…
  题目 解决代码及点评 判断一个数是不是素数的方法,一般是看n是不是能被n以内的某个整数(1除外)整除 为了提高效率,这个整数范围一般缩小到n的平方根 如果在这个范围内的整数都不能整除,那么说明它是素数 /************************************************************************/ /* 8.判断一个数是否是素数 */ /************************************************…
  题目 解决代码及点评 这道题考察循环和比较 /************************************************************************/ /* 7. 任意十个数,打印出它们中的最大数.最小数. 测试数据:① 1,-12,20,30,-5,-23,33,125,200,-100 ② 0,10,3,1,5,6,-10,90,9,-4 ③ 12,13,14,15,10,-10,-11,-12,-9,9 */ /************…
  题目 解决代码及点评 这个题目,还是考察for循环的使用 以及数列规律,该数列的特点是第n个分子 = 第n-1个分子 + 第n-2个分子,分母也是此规律 而另外一个规律是第n个分子和第n-1个分母值相同 所以这里使用了一个辅助数组来做计算 /************************************************************************/ /* 6. 有一分数序列 ,求出这个数列的前20项之和. */ /****************…
  题目 解决代码及点评 这道题和上一道题类似,第n个累加项 = n-1累加项的n倍 由于有这个规律,我们可以用一个for循环实现 但是例子代码并没有这么做,大家可以回去修改下代码,使得代码更加有效率 这个代码把n的阶乘写成了一个函数 /************************************************************************/ /* 5. 用循环语句编写求 1到20的阶乘的程序. */ /**********************…
  题目 解决代码及点评 这道题考验for循环和一个简单的算法 因为每次累加的值有规律,后面一次累加是前面一次累加的两倍 所以可以用简单的循环,计算累加项和累加结果 /************************************************************************/ /* 4. 用循环语句编写求 2的0次方+到2的63次方的程序. */ /***************************************************…
  题目 解决代码及点评 这道题的目标是锻炼while循环,while循环的语法是 while(循环条件) { 循环体; } 每次进入循环体之前,先判断循环条件是否满足,如果不满足,执行序列就跳过 循环体 //3. 输入一行字符,统计其中的英文字母.数字.空格和其他字符个数. #include <stdio.h> #include <stdlib.h> void main() { char x; int numchar=0; int numnum=0; int numspa…
  题目 解决代码及点评 这道题考察我们对循环和判断的综合应用 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { int sumj=0; int sumo=0; for (int i=1;i<=100;i++) // for循环,对100以内的每一个整数 { if (i%2)// 如果是奇数 { sumj+=i; // 奇数累加 } else // 否则是偶数,则偶…
  题目 解决代码及点评 这又是个条件函数,但是这个函数无法用switch来解决,因为switch只能用于和某条件相等情况下,而这个函数的范围是无穷的 遇到这种问题,我们还是需要用复合的if语句来解决 #include <stdio.h> #include <stdlib.h> void main() { float x; float y; printf("please input x\n"); scanf_s("%f",&x…
  题目 解决代码及点评 根据题目要去,我们可以通过if实现该功能,伪代码如下: if(a > 90) print 'A' else if(a>80) print 'b' else if(a>70) print 'c' else if(a>60) print 'd' else print 'e' 但是这道题我们希望考察switch,所以在解决代码中,我们使用了switch语句 #include <stdio.h> #include <stdlib.h>…
 题目 解决代码及点评 这道题锻炼我们switch分支语句,对于条件太多时,用if符合条件分支是比较复杂的 可以使用switch代替 //5. 读入1到7之间的某个数,输出表示一星期中相应的 //某一天的单词:Monday. Tuesday等等,用switch语句做. #include <stdio.h> #include <stdlib.h> void main() { int a; printf("please input a\n"); scanf_s(…
  题目 解决代码及点评 按照题目要求,判断数值对3和5取模的结果,是否为0 #include <stdio.h> #include <stdlib.h> void main() { int a; printf("please input a\n"); scanf_s("%d",&a); if (a%3==0||a%5==0) // 如果对3取模为0或者对5取模为0,在c++中%是取模,||是条件或 { printf(&quo…
 题目 解决代码及点评 这道题考察对条件分支和赋值的灵活应用 正常思维 如果 a>b and a>c 那么a最大 如果b>c and b>a 那么b最大 如果c>a and c>b 那么c最大 但是以上写法判断多,代码复杂 简单的做法是: 如果 a < b 那么 a = b 如果 a < c 那么 a = c 最后a是最大值 #include <stdio.h> #include <stdlib.h> void main() {…
 题目 解决代码及点评 根据题目要求,只要根据用户输入的字母,判断字母之后,给出相应的输出即可 在以下代码中,f32函数实现了该功能,通过if条件判断语句 #include <stdio.h> #include <stdlib.h> void f32(char c) { if (c>='A'&&c<='Z') // 如果参数是'A'~'Z' { printf("%c",c+('a'-'A')); // 转化成小写字母,转化方法c-…
 题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> #include <math.h> void main() { double x,y; printf("please input x"); // 提示用户输入x scanf_s("%lf",&x); /// 通过scanf_s让用户输入x的值 if (x>=0) // 如果x>=0 { y=(sin(x)+…
 题目 解决代码及点评 #include <stdio.h> #include <stdlib.h> void main() { // print是输出函数,参数%s表示输出字符串,而%-10s表示输出的字符串占10个位置,不足则补空格 printf("%-10s %-10s %-10s %-10s %-10s\n","name","number", "math" , "english&q…
前言:关于VS2013 刚装完VS2013,新的IDE给人全新的编程体验,界面比以前更急简洁漂亮,不多说了,先上图吧 第一次启动VS2013…
   题目 解决代码及点评 /************************************************************************/ /* 19. 在一个程序中计算出给定误差小于0.1,0.01,0.001,0.0001,0.00001 时,下式的值: */ /************************************************************************/ #include <stdio.h…
  题目 解决代码及点评 /************************************************************************/ /* 18. 给出一个不多于4位的正整数,要求:① 求出它是几位数 ② 分别打印出每一位数字 ③ 按逆序打印出各位数字. */ /************************************************************************/ #include <stdio.h>…
   题目 解决代码及点评 这道题目还是考察循环,通过循环遍历1234~9876,然后将每个数都用算法判断其是否符合条件#include <stdio.h> #include <stdlib.h> int f4171(int num) { int count=0; while(num) { count++; num/=10; } return count; } // 这个函数返回位数的转换 int f4172(int num) { int sum=0;//要返回的数字…
   题目 解决代码及点评 完数的解决方案依旧是遍历,然后写出判断完数的函数进行处理 /************************************************************************/ /* 16. 一个数如果恰好等于它的因子之和,这个数就称为"完数". 例如,6 的因子为1.2.3,而6=1+2+3,因此6 是"完数".编程序找出1000之内的所有完数, 并按下面格式输出其因子: 6 its facto…
   题目 解决代码及点评 这道题也是锻炼for循环,在for循环中遍历所有可能的数,然后再判断该数是不是有这样的性质 /************************************************************************/ /* 15.两位数13和62具有很有趣的性质:把它们个位数字和十位数字对调,其乘积不变,即13*62=31*26. 编程序求共有多少对这种性质的两位数(个位与十位相同的不在此列,如11.22,重复出现的不在此列,如 1…
   题目 解决代码及点评 这道题依旧是通过for循环,遍历所有四位数,然后根据题目要求判断数的性质即可 /************************************************************************/ /* 14.3025这个数具有一种独特的性质: 将它平分为两段,即30和25,使之相加后求平方,即(30+25)的平方, 恰好等于3025本身.请求出具有这样性质的全部四位数.基础10分 */ /******************…