第二次作业
作业要求: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 |
折线图


浙公网安备 33010602011771号