预习作业:
1.本次共观看三小节的慕课。
观看进度截图:
2.数组运算中这一节中主要讲了以下知识点(第一二张截图),同时还有搜索部分
的知识点(第三张截图)。
3.课程内容易懂,语言简洁扼要,非常适合我们初学者学习。
博客链接:https://edu.cnblogs.com/campus/hljkj/CS201802/homework/2522
第十三次作业:
输出数组元素
本题要求编写程序,对顺序读入的n个整数,顺次计算后项减前项之差,并按每行三个元素的格式输出结果。
输入格式:
输入的第一行给出正整数n(1<n≤10)。随后一行给出n个整数,其间以空格分隔。
输出格式:
顺次计算后项减前项之差,并按每行三个元素的格式输出结果。数字间空一格,行末不得有多余空格。
输入样例:
10
5 1 7 14 6 36 4 28 50 100
输出样例:
-4 6 7
-8 30 -32
24 22 50
实验代码:
#include<stdio.h> int 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++; } }
解题思路:
第一步:设置变量i,j,n,count和数组a[10]。
第二步:输入十个量到数组a[i]中,再定义一组数组a[j],a[j]=a[i]-a[i-1]
第三步:在循环变量中设置count=0,当count=3时,输出“\n”分行,后输出数值,再将count赋值为0;若j=0,就直接输出该数值,其余的先输出一个空格,再输出数值。
流程图:
错误及调试:
调试:
出现错误:
忘记了“每行三个元素的格式输出结果”的条件。
解决方式:
在if循环中插入以下代码
else if(count==3){
printf("\n");
printf("%d",a[j]);
count=0;
}
查找整数 (10 分)实验代码 :
#include <stdio.h> int main() { int n,i,j; scanf("%d",&n); int a[11]; for(i=0;i<n;i++) scanf("%d",&a[i]); for(j=0;j<n;j++) { if(a[0]<a[j]) { a[0]=a[j]; i=j; } else if(a[0]==a[j]) { a[0]=a[j]; if(i>j) { i=j; } } } printf("%d %d",a[0],i); }
解题思路:
第一步:定义变量n,i,j。
第二步:给n输入值。
第三步:定义数组a[n]。通过for循环给a[n]输入n个值。
第四步:最后利用for循环和if、else判断得出下标i。
流程图:
错误及调试:
调试:
结果与题目相符,本次编写正确。
个人总结:
本次学习了C语言的数组部分,数组部分的学习更加方便了编写,可以一次输入多个值减少重复语句的使用。
第十四次作业中的7-4数字加密和7-5将数组中的数逆序存放个人感觉有难度。
我通过和同学讨论交流以及一起编写,明白了这两个题的做法。
https://www.cnblogs.com/asdfghjklasdfghjkl/p/10127728.html
https://www.cnblogs.com/abcdsjjs/p/10170665.html
https://www.cnblogs.com/1017547133jyj/p/10165434.html