第二次作业
作业要求:https://edu.cnblogs.com/campus/hljkj/Cprogramming_2018Autumn_CST2018_4/homework/2502
一·函数6-3数字金字塔
1.实验代码
void pyramid( int n ) { int row, col; for (row = 1; row <= n; row++) { for (col = 1; col <= n-row; col++) { printf(" "); } for (col = 1; col <= row; col++) { printf("%d ", row); } putchar ('\n'); } }
2.设计思路
(1)文字描述:
函数声明,然后定义;
然后需要输出的行数;
输出每行左边的空格;
输出每行的数字;
(2)流程图:
(3).调试过程;
(4).解决:
j<=n-1,而不是n。
二.数组一7-2
1.实验代码:
#include<stdio.h> main() { int a[10], b[10], i, j, n, count = 0; scanf("%d", &n); for (i = 0; i < n; i++) { scanf("%d", &a[i]); } for (j = 0; j < n - 1; j++) { b[j] = a[count + 1] - a[count]; count++; } count = 0; for (j = 0; j < n - 1; j++) { if (j == 0) { printf("%d", b[0]); } else if (count == 3) { printf("\n"); printf("%d",b[j]); count = 0; } else { printf(" %d", b[j]); } count++; } }
2.设计思路
(1)文字描述
定义i, n, cnt = 0
输入n,然后设置for循环输入数组
利用a[i] = a[i + 1] - a[i]计算后项减前项之差
每行三个元素的格式cnt == 3,
cnt循环;
(2)流程图
(3)
(4)
将n改为10即可
三.数组二7-3
1.实验代码
#include <stdio.h> #include <stdlib.h> int main() { int number[1000]; int i,j,n; int temp; scanf("%d",&n); for(i=0;i<=n-1;i++) scanf("%d",&number[i]); for(i=2;i<=n;i++) for(j=0;j<=n-i;j++){ if(number[j]>number[j+1]){ temp=number[j]; number[j]=number[j+1]; number[j+1]=temp; } } int count=0; int count1=0; int flag=0; if(n>1){ for(i=0;i<=n-2;i++){ count1=1; while(number[i+1]==number[i]){ i++; count1++; } if(count1>count){ flag=number[i-1]; count=count1; } } printf("%d %d\n",flag,count); } else if(n==1) printf("%d %d\n",number[0],1); return 0; }
2 设计思路
(1)文字描述
定义数组a[i],b[i]
输入n个数,a[j]为最多的数,利用for循环输出最多的值,再利用for循环求出b[i]次数
(2)流程图
没有多次循环
(4)解决方法
在if(b[i] > max)前加一个for循环,以输出最多项次数。
四 .总结
这段时间学了函数和数组,对于数组还是有很多的问题,但还是会多看资料多问老师去解决这些问题。
不过收获还是很大的,学会了定义函数 储存数据
(2)点评。
(3)表格
|
此周代码行数/行 | 码代码所用时长/h | 所写博客字数/字 | 写博客所用时长/h | |
第14周 | 1500 | 2 | 0 | 0 | |
第15周 | 1500 | 2 | 0 | 0 | |
第16周 | 1200 | 1.5 | 0 | 0 | |
第17周 | 1700 | 2.5 | 3000 | 3 |
折线图