一、2022
做题思路:先建立数组,然后输入成绩a[50][50],接着把成绩都转换成绝对值形式的数组o[50][50],然后就到在o选[50][50]选出最大值max,那么我先定义一个未知数max,然后用max一个一个与o[50][50]对比,比max大则换数字,比max小则max不变,然后用两个for的嵌套循环结构(一个for循环行,再嵌套for循环列)一直替换到最后,再输出max就是最大值,然后再回到比大小的循环那里输出当for循环的行号和列号。
遇到的问题:
1.使用自定义函数mx时怎么返回一个值max? return max;同时还得注意前面不能用void了,要换成对应的max的数据类型
2.思路进行到输出max时停止了,Devc++一直报错,错误的地方在这里
这个问题我现在还没弄明白
下面是代码:
#include<stdio.h>
#include<math.h>
int main()
double mx()
{
double z,min,max;
if(max<min)
{
z=max;
max=min;
min=z;
}
if(max>min)
{
max=max;
min=min;
}
if(max=min)
{
max=max;
min=min;
}
return max;
}
{
int m,n,j,k;
double i[50][50],o[50][50],max;
scanf("%d",&m);//行
scanf("%d",&n);//列
for(j=0;j<m;j++)//后写行//输入
{
for(k=0;k<n;k++)//先写列
{
scanf("%lf",&i[j][k]);
}
}
for(j=0;j<m;j++)//后化行//化为绝对值
{
for(k=0;k<n;k++)//先化列
{
o[j][k]=fbs(i[j][k]);
}
}
for(j=0;j<m;j++)//后写行//
{
for(k=0;k<n;k++)//先写列
{
max=mx(o[j][k],o[j][k+1]);
}
}
return 0;
}
二、这周还学习了链表,单链表,双链表,以及两种链表的相关操作
1.单链表
单链表就是类似于一个车厢里面有两个空间,前面的空间装着数据域data,后半部分装着指针域next(注意这个指针域指向下一个车厢的地址)
(1)建立空链表
slink *initlist()
{
slink *L//头结点
L=(slink*)malloc(sizeof(slink));
if(L==null)
{
exit(1);
}
}
(2)尾插法:在链表的尾部插入一个结点。
r为尾节点,s为新节点
r->next=s;
r=s;
(3)头插法:在头部后面插入一个结点。
L表示头节点,
s->next=L->next;
L->next=s;
2.双链表:比起单链表,双链表在前面多加了一个指针域,三个域分别是next,data,prior
关于链表的其他操作内容尚且没理解透彻,还需再了解一下