大佬就可以撤退了!!
本次为C语言入门刷题!重在扎实基础,温习学过的基础知识!!!
夯实基础,走得更远!!
(数据类型) 变量名。针对求一个数的个位数,那么他的小数部分就可有可无了,所以我们利用强制转换,将其转换为整型,模10后,易得出其个位数。
范围大的类型在一定情况下式可以转换为小类型的:大类型的数值在小类型的范围内,但是最好不要使用大转小,容易内存泄漏,从而出错。
#includeint main() { char n = 0; while((n=getchar())!=EOF) //针对oj在线判题的多组输入时,我们使用 //while((n=getchar())!=EOF) 或者 while(scanf("%d",&m)!=EOF) { //来进行多组输入! if ((n>='a' && n= 'A' && n <= 'Z')) //输入字符n,来判断是否在A-Z,a-z这两个 //范围之内,在的话,就是字母,否则不是! { printf("%c is an alphabet.\n",n); getchar(); //重点 } else { printf("%c is not an alphabet.\n",n); getchar(); } } return 0; }
getchar(),用来接收字符,但是当我们输入一个字符,并按下回车键的时候,其实这是,回车也作为一个字符输入了进去。
所以,此时前面的scanf()在读取输入时会在缓冲区中留下一个字符'\n'(输入完第一个字符的值后按回车键所致),所以如果不在此加一个
getchar()把这个回车符取走的话,getchar()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 !
EOF: 在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件 这下~~是不是恍然大悟了!!
思路:假设此时为一个四位数的数字,它需要拆分为 146 和1,14 和 61,1 和 461.那我们就不得不将其中的数单独拿出来进行配对,而后再计算是否满足条件。所以这就用到了' / '除 和 ' % '模 ,这两个运算符。
一个数除10,100,1000,得到的是他的商
一个数模10,100,1000,得到的是他的余数
102/10得到1和0;98/10得到9;98%10得到8;123/100得到1;123%100得到23.........
所以我们逐渐摸清楚了 / 和 %的作用!
接下来,上代码!
#includeint main() { int i = 0; int j = 0; int a1 = 0; for (i = 10000; i <= 99999; i++) //题目规定所有五位数字 { int sum = 0; for ( j = 10; j <= 10000; j *= 10) { int a1 = (i / j) * (i % j); // 举例12345,先除10,拿出前四位;再模10,拿出第 //五位,相乘的结果 1234 和 5,以此类推...... sum += a1; } if (sum == i) //如果五位数的所有的拆分情况数,之和等于原本这个五位 //数,那么它就是水仙花数 printf("%d ", i); } return 0; }
相信大家看完以后,也看懂了! 那么这期的C语言入门刷题基础知识点就到这里啦!!
是不是觉得不够,内容太少?
那么就期待下期我们再见吧!!记得三连哦,别到时候找不到俺
Copyright © 2023 leiyu.cn. All Rights Reserved. 磊宇云计算 版权所有 许可证编号:B1-20233142/B2-20230630 山东磊宇云计算有限公司 鲁ICP备2020045424号
磊宇云计算致力于以最 “绿色节能” 的方式,让每一位上云的客户成为全球绿色节能和降低碳排放的贡献者