第八周学习总结

这是一篇第八周学习总结博客,包含多道编程题。有输入四位数判断各位数之和奇偶性的题目,还涉及求实数平均值、找寄邮件方式规律等。同时学习了个位数算法、判断偶数方法、字符串函数使用、变量作用域等编程知识,以及代码编写中遇到的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第八周学习总结

2022/10/24

(1)题目描述:

输入一个四位数,输出它的每一位数,并且判断它的各个位数的相加之和是否是偶数,如果是就输出YES,否则就输出NO

代码如下:

 思路:

输入一个四位数通过计算将各位数一个一个挑出来,然后再将这些数进行相加再除以2取余,进行判断

从这一题所学知识:

1.个位数算法:a=n(输出数)%10(取余)        十位数算法:b=n/10%10(把个数位剔除,取余)

百位数算法:c=n/100%10(把个数位和十位数剔除,取余)

以此类推............

2.判断偶数的方法:n%2=0(如果数能被2整除,那么就是一个偶数)

3.多组输出一般采用:        while(scanf("%d",&n)!=EOF)或while(n--)(当n=0的时候判断为假,跳出循环)

我在打代码时出现的问题:

[Error] lvalue required as left operand of assignment

原因:计量值为==  !=         变量为=

         赋值语句左边应该是,不能是表达式。要把=改成==.


10/25

(1)题目描述:

有n个实数,实数的范围在0---100之间,通过average函数求这n个实数去掉最大最小值后的平均值

要求:n及n个实数在主函数中输入,结果保留2位小数

代码如下:

 思路:

通过选择排序法将输出的值进行排序,然后减去掉a[0]和a[n-1],也就是最小值和最大值,相加除以n-2个数得平均值

(2)题目描述:

小璐有一群笔友,有一天他们跟小璐约定好去互相寄邮件,每个人只能寄一封邮件,也只能收一封信,寄给这些笔友或者是小璐,小璐也要寄,当然了不能自己寄给自己,那么小璐想知道有多少种不同的寄邮件方式,对于这等问题,小璐早就知道了答案,所以他要来考考你,那么就交给你了。

代码如下:

 思路:

1.个人认为是存粹的找规律问题,如;

        1( 只有一个人时)        0;

        2 (0x2+1)                               1;

        3 (1x3-1)                               2;

        4 (2x4+1)                               9;

        5 (9x5-1)                               44;

        6(44x6+1)                                265;       

2.当然也得注意输出值的大小,如果用int型的话,也就不能输出后面的数了


10/26

(1)所学知识:

判断偶数时可以只判断个位数,这样可以使速度提快


10/27

(1)题目描述:

你的好友一直想对一个女孩说"I still love you very much!",可出于某种原因,他想将这句话发到网上,好让她看见。可你的好友又怕太多人知道这句话的意思,
于是他便想将这句话中的每一个字符所对应的int值转换为二进制,二进制不足8位的在前面补0,比如字符'I'所对应的int值为73,所对应的二进制为01001001.
由于你的好友还不会字符串,所以只能来求助你了。

代码如下:

思路 :

先定义一个字符数组,然后输入一个字符串,再将数组内每一个元素转换成ASCII值,再将ASCII值转换成二进制

注意:

1.6二进制所对应的ASCII值最大为64,位7位二进制所对应的ASCII值最大为128,8位二级制所对应的ASCII最大为256,也就是说最少要补一位0,而'a'对应的ASCII值为65

2.用while循环因为n可能小于2,无法进行循环,所以使用do while循环

3.n经过计算最终会变为0为假,然后结束循环

从这一题中所学知识

1.数值转换成二进制:先定义一个数组来储存二进制的各个值,然后再利用“a[i]=n%2,n=n/2;”来计算各ASCII值

2.#include<string.h>表示你可以引用关于字符串的函数

3.gets()的作用是从键盘上读取字符串,与sacnf()相似但又不同

gets() 可以接收空格、Tab键, 碰到回车键输入才结束;而scanf碰到空格、回车、Tab键 都会结束输入

gets() 和scanf() 都不能检测越界

4.strlen函数可以计算字符串的长度

5.printf(“%s”,a)可以换成puts(s)

(2)所学知识:

字符串函数:

1.puts()的作用是将一个字符串输出

2.strcat(字符数组1,字符数组2)的作用两个字符数组中的字符串连接起来,把字符串2连接到字符串1的后面,结果放在字符数组1中。

3.strcpy(字符数组1,字符串2)作用是将字符串2复制到字符数组1中去

trcpy(字符数组1,字符串2,n)——字符串选择复制的函数

4.strcmp(字符数组1,字符串2)因为字符串不能用等号来比较大小,所以就用strcmp函数来比较

如果字符串1与字符串2相同,则函数值为0

如果字符串1 > 字符串2,则函数值返回一个正数

如果字符串1 < 字符串2,则函数值返回一个负数

5.strlwr(字符串)作用是将字符串中的大写字母转换成小写字母

6.strupr(字符串)作用是将字符串中的小写字母转换成大写字母

7.strstr(字符串1,字符串2)

用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。如果找到该数组,就会从找到的地方开始输出

8.\0表示在字符串数组内表示结束,也表示0

10/29

(1)题目描述:

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。
例如,输入”They are students.”和”aeiou”,
则删除之后的第一个字符串变成”Thy r stdnts.”。

代码如下:

 思路:

将删除字符一个一个比较被删除的字符,如果相等,固定值temp改变,跳出循环,就不把相等的字符放进c组;如果不相等,就固定值temp不变,就把不相等的字符放进c组

依次循环.......

再将c组的字符输出

(2)今日所学知识:

1.全局变量也称为外部变量,它是在函数外部定义的变量。它不属于哪一个函数,它属于一个源程序文件。其作用域是整个源程序

2.局部变量也称为内部变量。局部变量是在函数内作定义说明的。其作用域仅限于函数内, 离开该函数后再使用这种变量是非法的。在复合语句中也可定义变量,其作用域只在复合语句范围内

3.用static修饰的为静态变量,如果定义在函数内部的,称之为静态局部变量;如果定义在函数外部,称之为静态外部变量

4.用extern声明的的变量是外部变量,外部变量的意义是某函数可以调用在该函数之后定义的变量

5.在C语言中不能被其他源文件调用的函数称谓内部函数 ,内部函数由static关键字来定义,因此又被称谓静态函数

6.在C语言中不能被其他源文件调用的函数称谓内部函数 ,内部函数由static关键字来定义,因此又被称谓静态函数,

(3)题目描述:

将一个字符串str的内容颠倒过来,并输出。str的长度不超过100个字符

代码如下:

   思路:

定下标定在最前面和最后面的字符,相交换后,前面字符往前走一个,后面字符我往后走一个   ,再交换,再往前往后走,以此循环,其中i<j                          

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值