个人感悟##C语言中的得与失

个人练习感悟

1.三个任意整数从小到大排序

#include <stdio.h>
#include <stdlib.h>

int main()
{
int a,b,c;
printf(“我可以为您进行从大到小排序,请任意输入三个的整数:”);
scanf(“%d%d%d”,&a,&b,&c);
if(a>b&&a>c)
if(b>c) printf(“%d,%d,%d”,a,b,c);
else if(b<c) printf(“%d,%d,%d”,a,c,b);
if(b>a&&b>c)
if(a>c) printf(“%d,%d,%d”,b,a,c);
else if(a<c) printf(“%d,%d,%d”,b,c,a);
if(c>a&&c>b)
if(a>b) printf(“%d,%d,%d”,c,a,b);
else if(a<b) printf(“%d,%d,%d”,c,b,a);
printf(“\n”);
return 0;
}

小结:
可以去除 if(…)只留下else,这样可以把相等的数包含进去
错误示例:没有if,直接在else后加(),这是错误写法,切记!!
当然,可能有更好的写法,但本小白还不知道(哭)

2.输入日期,可求出是这年的第几天

#include <stdio.h>
#include <stdlib.h>
int main()
{
int y,m,d,ey,day=0;
printf(“请输入日期(年-月-日):”);//计算该日期是这年的第几天
scanf(“%d-%d-%d”,y,m,d);
if((y%40&&y%100!=0)||(y%4000))
ey=29;
else ey=28;
switch(m)
{
case 12: day+=31;
case 11: day+=30;
case 10: day+=31;
case 9: day+=30;
case 8: day+=31;
case 7: day+=31;
case 6: day+=30;
case 5: day+=31;
case 4: day+=30;
case 3: day+=31;
case 2: day+=ey;
case 1: day+=31;
}
switch(m)
{
case 12: day-=31;break;
case 11: day-=30;break;
case 10: day-=31;break;
case 9: day-=30;break;
case 8: day-=31;break;
case 7: day-=31;break;
case 6: day-=30;break;
case 5: day-=31;break;
case 4: day-=30;break;
case 3: day-=31;break;
case 2: day-=ey;break;
case 1: day-=31;break;
}
day+=d;
printf(“%d”,day);
return 0;
}

小结:
吐血,调试结果是对的,但就是执行不了结果,是codeblocks的原因吗?
真给我整自闭了。
但是这个题利用了case的持续执行的特性,达到月份相加的效果,值得留意。

3.打印超级玛丽!

#include <stdio.h>
#include <stdlib.h>

int main()
{
printf(
" ********\n"
" \n"
" ####…#.\n"
" #…###…##…\n"
" ###…###### ### ###\n"
" … #…# #…#\n"
" ##
####### #.#.# #.#.#\n"
" ####
###### #.#.# #.#.#\n"
" …#
.
.###… #…# #…#\n"
" …
****##… ### ###\n"
" …
*****…\n"
" #### ####\n"
" ###### ######\n"
“##############################################################\n”
“#…#…#.##…#…#.##…#…#.##------------------#\n”
“###########################################------------------#\n”
“#…#…#…##…#…#…##…#…#…#####################\n”
“########################################## #----------#\n”
“#…#…##…#…##…#…# #----------#\n”
“########################################## #----------#\n”
“#.#…#…#…##.#…#…#…##.#…#…#…# #----------#\n”
“########################################## ############\n”
);
return 0;
}

小结:
直接复制大佬的代码,学到了C语言中多行字符串的写法,真不错
printf中()独自一行,每行为“… \n”的格式

3.输入一个字符,输出一个字符的三角形

#include <stdio.h>
#include <stdlib.h>

int main()
{
char c;
scanf(“%c”,&c);
printf(" %c\n",c);
printf(" %c%c%c\n",c,c,c);
printf(“%c%c%c%c%c%c\n”,c,c,c,c,c);
return 0;
}

吐槽:
洛谷上的题,自己运行最后一个字符一直是“?”,但洛谷判断我是对的,奇了个怪了,也先保留一下吧

                          #就这样先,人生不如意之事十有八九,不过是少许风霜罢了(doge)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值