C语言——第十四、十五周作业

时间:2023-03-10 02:35:15
C语言——第十四、十五周作业

题目

题目一:交换最小值和最大值

1.实验代码

#include<stdio.h>
int main()
{
const int N = ;
int i , n;
int a[N];
int x , y;
scanf("%d",&n);
for(i = ; i < n ; i++)
{
scanf("%d",&a[i]);
}
x = a[];
y = ;
for(i = ; i < n ; i++)
{
if(x < a[i])
{
x = a[i];
y = i;
}
}
a[y] = a[n - ];
a[n-] = x;
x = a[];
y = ;
for(i = ; i < n ; i++)
{
if(x > a[i])
{
x = a[i];
y = i;
}
}
a[y] = a[];
a[] = x;
for(i = ; i < n ; i++)
printf("%d ",a[i]);
printf("\n");
}

2.设计思路

①算法

第一步:定义变量,定义数组。

第二步:循环输入数组。

第三步:使用循环结构比较数组中所有数的最小值,并将其储存在一个变量中,然后将最小值与第一个数交换;然后同样使用循环结构比较数组中所有数的最大值,并将其储存在另一个变量中,然后将最大值与最后一个数交换。

第四步:输出交换后的序列。

②流程图

C语言——第十四、十五周作业

C语言——第十四、十五周作业

C语言——第十四、十五周作业

C语言——第十四、十五周作业

3.本题调试过程碰到问题及解决办法

截图

C语言——第十四、十五周作业

本题错误是读题不够认真导致的。我错误地理解了题目意思,导致多次修改总是存在测试点错误情况,通过询问同学才明白错误原因,下次做题前一定会认真审题,不再犯类似的错误。

题目二:判断上三角矩阵

1.实验代码

#include<stdio.h>
int main ()
{
const int N = ;
int a[N][N];
int n , m , k , i , j , flag;
scanf("%d",&n);
for(k= ; k<=n ; k++)
{
scanf("%d",&m);
for(i= ; i<m ; i++)
{
for(j= ; j<m ; j++)
{
scanf("%d",&a[i][j]);
}
}
flag=;
for(i= ; i<m ; i++)
{
for(j= ; j<m ; j++)
{
if(i>j && a[i][j]!=)
{
flag = -;
}
}
}
if(flag == -)
{
printf("NO\n");
}
else if(flag == )
{
printf("YES\n");
}
}
return ;
}

2.设计思路

①算法

第一步:定义变量,定义数组。

第二步:输入所需值,循环输入数组。

第三步:通过循环结构判断矩阵下三角的数值是否未0(通过定义的flag值判断),由于可能存在多个矩阵,同一个矩阵的输入输出在同一个循环结构中。

第四步:若flag值未初始值,输出YES;否则,输出NO。

②流程图

C语言——第十四、十五周作业

3.本题调试过程碰到问题及解决办法

截图

C语言——第十四、十五周作业

本题并未找到题目错误原因,由于长时间没有进展,改换了另外一种思路,答案成功通过测试。

我的git地址:https://git.coding.net/dx200798/fourteen-fifteen.git

项目截图

C语言——第十四、十五周作业

C语言——第十四、十五周作业

个人总结

本周学习内容:

本周练习了一维数组,学习练习了二维数组,简单学习了字符数组。

疑点难点:

对数组的应用不够熟练,对字符串的应用非常不熟练。

互评和学习进度

互评链接

链接1:http://www.cnblogs.com/fengzx/p/7955263.html

C语言——第十四、十五周作业

链接2:http://www.cnblogs.com/exo123/p/7954060.html

C语言——第十四、十五周作业

链接3:http://www.cnblogs.com/lixiaojing/p/7878001.html

C语言——第十四、十五周作业

图表

C语言——第十四、十五周作业

C语言——第十四、十五周作业

C语言——第十四、十五周作业