首页
学习
活动
专区
圈层
工具
发布
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    LeetCode题解-2.两数相加(C语言)

    LeetCode题解-2.两数相加(C语言) 1.问题描述 给你两个非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。...请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...对于长度短的数字进行补0,然后相加,将处理后的每一项插入结果链表。...1、创建结果链表 2、遍历给定的两个链表 3、取结点值进行相加,并记录进位值carry,注意短数补0 4、遍历结束后,判断进位是否大于0,是则插入结果列表 在实现该题过程中,借鉴了官方的题解,最终按着自己的理解写出该题...->val = carry; node->next = NULL; } return L; } 4.个人记录 在第一次实现中,在进行链表插入时出现错误,导致只能输出第一个数字和最后一个数字

    44100

    C语言每日一题(37)两数相加

    力扣网 2 两数相加 题目描述 给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。...请你将两个数相加,并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外,这两个数都不会以 0 开头。...思路分析 最基本的思路,就是将俩链表转正过来,相加后再进行逆序,实现是可以实现,但时间复杂度太高了,此外这里相加还涉及到进位的问题,这样做会很麻烦。...换一种思路,我们直接在现成的两个链表上操作,可以看到,相加后逆过来的值刚好就是对应的两个结点的相加,那我们可以直接遍历两个链表,将对应的值相加,并存放到新的结点里。...需要注意的事项: 1.这里会涉及到进位的问题,我们可以将相加后的值/10得到进位值(大于10的进位值为1,小于10的进位值为0)每次相加时加上进位值即可。

    23010

    【C语言】两个数组比较详解

    C语言中两个数组比较详解 在编程中,比较两个数组是一项常见任务,无论是在排序算法、数据验证,还是在其他需要处理多个数据集的应用中。...本文将详细介绍在C语言中如何比较两个数组,包括逐元素比较、内置函数的使用、以及在嵌入式系统中的应用和拓展技巧。 1....结论 比较两个数组在C语言中有多种实现方法,选择合适的方法取决于具体的应用场景和性能要求。从逐元素比较到使用memcmp函数,再到指针优化,每种方法都有其优点和适用范围。...希望本文对您在C语言中比较数组的实践有所帮助。无论是在普通应用还是嵌入式系统中,掌握这些技巧都能显著提升您的编程水平。 7....结束语 本节内容已经全部介绍完毕,希望通过这篇文章,大家对C语言数组比较有了更深入的理解和认识。 感谢各位的阅读和支持,如果觉得这篇文章对你有帮助,请不要吝惜你的点赞和评论,这对我们非常重要。

    1.1K10

    C语言每日一题(47)两数相加II

    力扣 445 两数相加II 题目描述 给你两个 非空 链表来代表两个非负整数。数字最高位位于链表开始位置。它们的每个节点只存储一位数字。将这两数相加会返回一个新的链表。...你可以假设除了数字 0 之外,这两个数字都不会以零开头。...示例3: 输入:l1 = [0], l2 = [0] 输出:[0] 提示: 链表的长度范围为 [1, 100] 0 <= node.val <= 9 输入数据保证链表代表的数字无前导 0 思路分析 和两数相加比起来...,这道题的难点在于它不是逆序的而是正序的,这意味着你不能直接在两个链表上进行操作,但可以逆转链表再进行操作,但这样工作量就会很大了,还容易出错。...Stack2[--top2] : 0;//考虑到两链表长度不等的情况,不存在的值视作0 sum=n+m+carry; carry=sum/10;//求出进位值

    24310

    C语言函数的调用——比较两个数的大小

    先写好框架 二、然后定义我们需要的变量 三、这里就要写函数的部分 四、函数部分写完了,但是还一个地方,要值得注意  一、常规方法比较大小 二、指针操作比较大小 今天我们要写的是用调用函数的方法来 比较两个数字的大小...我们先看看程序的运行效果 一、先写好框架 #include void main() { } 二、然后定义我们需要的变量 int i,j;//只有两个参数 scanf("%d,%d",&i,&j)...; 三、这里就要写函数的部分 //这里的max是我们定义的函数名字,这个函数定义为int型表示我们最终要返回一个整形的数字 //括号里的两个表示形参,即我们要把我们在主函数中输入的两个数字放进去,然后再执行函数里面的语句...我在下面的主函数中要用到我定义的这个函数   声明如下 一、常规方法比较大小 #include int max(int i, int j); //主函数之前声明 int main() { int i,j; printf("输入两个数字...,这两个数字之间用空格隔开:\n"); scanf("%d%d",&i,&j); printf("%d\n",max(i,j));//声明完成之后,在这里调用我们写的函数,并且把我们输入的两个参数放进函数中

    3.5K20

    C语言两个数相除怎么得到浮点数

    c语言相除为什么没有小数有些时候,使用C语言的相除运算符计算两个变量相除运算结果,可是却无法保留小数,比如3/2,打印输出是1,而不是1.5之类有小数的值。这是为什么呢?...可能有两种原因,如下:如上实例中的3/2,两个变量均为int或其它整型,相除得到的运算结果也为整型,要得到浮点数,可以将其中一个变量转换为浮点型;C语言中pirntf()函数打印输出浮点数使用的是%f占位符...,而不是 %d;下面将通过几个实例来验证这两种原因。...c语言相除得到小数实例代码实例代码中,int除以int,即x除以y,并使用%f,得到的却是0.000000;int除以float,即x除以z,却使用%d,得到的却是0;int除以float,即x除以z,...f \n", x/y); printf("x / z= %d \n", x/z); printf("x / z= %f \n", x/z); return 0;}原文(全栈开发助手)c语言

    49821

    C语言——统计单词个数

    一.问题 用C语言编写程序,统计从键盘输入一行字符中单词的个数;输入的文本包含字母,空格和标点符号,单词之间用空格隔开。...♦♦♦我们输入的文本中,第一个单词之前可能会有空格,同时两个单词之间可能有多个空格。 因此,我们不能简单地通过统计空格的个数来得到单词的个数。 三.具体代码 以下我给出两种不同思路的代码。...inword == 0)//遇到非空格字符并且之前不在单词内,则让inword=1,并将单词计数加一 { inword = 1; count++; } } printf("单词个数为...♦它的作用是用于标记当前字符是否处于单词之中 在遍历字符串来判断单词的个数时,遇到空格,将inword标记为0,表示不在单词中;在遇到非空格字符时,并且之前不在单词中,则将inWord标记为1,并将单词计数加一...= ' ' && (str[i + 1] == ' ' || str[i + 1] == '\0'))//单词结尾 { count++; } } printf("单词个数为:%d\n"

    81310

    C语言练习之交换两个数组中的内容

    (数组一样大) 一、思路 交换两个变量A、B中的内容,可以创建第三个变量C。 先将A中的内容放置在C中保存,再将B中的内容放置进A中,最后将C中的内容(原A中的内容)放进B中。...这次对两个数组内容的交换就是用了这种思想。 需要注意一点,打印数组时不能直接全部打印,需要借助一个for循环来一个一个的打印数组中的内容。...,arrA[i]); } printf("\n"); printf("arrB = "); for (i = 0; i < sz; i++) { printf("%c", arrB[i])...; } printf("\n"); return 0; } 运行截图: ---- 总结   以上就是今天要讲的内容,本文简单的介绍了用C语言实现交换两个数组中的内容的思路,还进一步展示了代码的运行结果验证了作者的思路...本文的作者也只是一个正在学习C语言等编程知识的萌新,若这篇文章中有哪些不正确的内容,请在评论区向作者指出(也可以私信作者),欢迎大佬们指点,也欢迎其他正在学习C语言的萌新和作者进行交流。

    1.6K20
    领券