题目 解决代码及点评 /************************************************************************/ /* 34. 编程序将一个6×6的二维数组左下三角部分全赋值为-1,右上三角全赋值为1, 主对角线(行,列下标相同)上的元素送入2.把数组中的值按列对齐方式输出. 要求: 不允许使用scanf_s函数. */ /****************************************…
      题目 解决代码及点评 /* 功能:已知有三个数组A,B,C,A为5行5列的二维数组,B.C为只有5个元素的一维数组,键盘输入数据的顺序如下: 23,45,6,1,-3,4,5,233,456,0,3,56,78,-56,5,6,77,8,89,9,3,6,8,9,90 请编写程序,求出A的各行之和放至数组B的相应元素中,求出数组A的各列之和放至数组C的相应元素之中. 程序的输出部分要按下边形式显示: 23 45 6 1 -3 72 4 5 233 456 0…
     题目 解决代码及点评 /************************************************************************/ /* 18. 设有8×8的二维数组a,其中每个元素取值如下: 当 i=j 时 a[i][j]=M (M是你的学号) 当 i<j 时 a[i][j]=i+j 当 i>j 时 a[i][j]=i×j 编程序求所有的数组元素之和. */ /*******************************…
   题目 解决代码及点评 /* 分别输入N和M个数到数组A和数组B中.把只在其中一个数组中出现的那些数送入到数组C中,并指出它们在A或B数组中的位置. */ #include <stdio.h> #include <stdlib.h> void main() { const int n=10; const int m=10; int a[n]; int b[m]; int c[n+m]={0};//为保证不同的数全部存储,c的大小定义为n+m: int k=0; //…
 题目 解决代码及点评 /* 5. 写一函数,将一个3×3的矩阵转置. */ #include <stdio.h> #include <stdlib.h> void main() { int a[3][3]; int b[3][3]; for (int i=0;i<3;i++)//给数组赋值 { for (int j=0;j<3;j++) { a[i][j]=rand()%100; printf("%d\t",a[i][j]); } printf…
      题目 解决代码及点评 /* 功能:求二维数组中每行元素的平均值,不许引入其它的数组 时间:16:21 2013/10/24 */ #include<stdio.h> #include<stdlib.h> #define N 5 void getArray(int a[][N],int n); //给二位数组随机赋值原型 void putArray(int a[][N], int n); //打印出二维数组原型 void main() { int…
   题目 解决代码及点评 /* 功能:编写求最大平台问题的程序. 有n个整数a1,a2, ... an, 若满足a1≤a2≤ ... ≤ an , 则认为在这n个数中有最大平台.在这种情况下,若n个数互不相同, 则最大平台值为1,若在n个数中最多有连续m个整数的值相等,则最大平台值为m. 例如: n=10时 1,2,3,4,5,6,6,7,4,5 无最大平台 1,1,2,2,2,2,2,2,2,2 最大平台值为8 1,1,2,2,2,3,3,4,4,5 最大平台值为3 0,1,2,…
  题目 解决代码及点评 这个是一道经典的教科书题目,基本上每本基础的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…