2019.5.16

一、2022

图片发自简书App

做题思路:先建立数组,然后输入成绩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++一直报错,错误的地方在这里

图片发自简书App

这个问题我现在还没弄明白

下面是代码:

#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

关于链表的其他操作内容尚且没理解透彻,还需再了解一下

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容