好啦,趁热打铁,我胡汉三又杀回来写第一篇正经博客啦~

    今天的主题是菜鸟到底有多菜

    

    ①.编写一个程序,可以一直接收键盘字符,如果是小写字符就输出对应的大写字符,如果接收的是大写字符就输出对应的小写字符,如果是数字不输出。

#include <stdio.h>

 

int main()

{

int i;

i=getchar();

 

if((i>64)&&(i<91))

{

i=i+32;

putchar(i);

}

else if((i>96)&&(i<123))

{

i=i-32;

putchar(i);

}

return 0;

}

    这是一个月里某一天的作业题,紧跟着是我自己写的解法,经历过半个月的写一题错一题多写多错之后发现诶这次居然一次性写对了还有点小激动呢,结果隔天上课发现我真是基础薄弱得好好看书。

    单引号引起来的字符常量就等于该字符对应的ASCII数值,并且可以和数字进行+-运算,枉我翻箱倒柜找红色那本《C语言程序设计》查ASCII码表并且应该判断(i=getchar())!=EOF,才能进行后面的字符处理。

    

    ②.将三个数按从大到小输出。

#include <stdio.h>

 

int main()

{

int a,b,c;

scanf("%d %d %d",&a,&b,&c);

    if(a>b&&a>c)

{

if(b>c)

printf("%d %d %d ",a,b,c);

else printf("%d %d %d ",a,c,b);

}

else if(a<b&&a<c)

{

if(b>c)

printf("%d %d %d ",b,c,a);

else printf("%d %d %d ",c,b,a);

}

else if(a>b&&a<c)

printf("%d %d %d ",c,a,b);

else if(a>c&&a<b)

printf("%d %d %d ",b,a,c);

return 0;

}

    讲真我真是太傻了,真的,光想着当天上课讲的是if条件句和else if语句,一看这题诶多适合练习逻辑呀,就写了上面这么彪的一段代码,真的,贴出来我都觉得丢人。通过这个题吧,我学到的知识点都是其次,以后遇到问题的时候千万憋光想着今天学了啥能不能套用上,不是所有问题都有模板的,更好更快捷的解决掉问题才是最重要的。好啦下面是长记性以后重写的代码~

#include <stdio.h>

#include <stdlib.h>

void swap(int *a, int *b)

{

 int tmp = *a;

 *a = *b;

 *b = tmp;

}

int main()

{

 int i,j,k;

 scanf("%d%d%d", &i, &j, &k);

 if (i < j)

 {

  swap(&i, &j);

 }

 if (i < k)

 {

  swap(&i, &k);

 }

 if (j < k)

 {

  swap(&j, &k);

 }

 printf("%d %d %d\n", i,j,k);

 return 0;

}

   ③.计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值。

#include <stdio.h>

 

int main()

{

int numer=1;

double deno,sum;

deno=1.0;

sum=0.0;

while(deno<101)

{

sum=sum+(numer/deno);

deno++;

numer=-numer;

}

 

printf("%f",sum);

return 0;

}

     

     编写程序数一下1到100的所有整数中出现多少次数字9。

#include <stdio.h>

 

int main()

{

int i;

int count=0;

 

for(i=1;i<100;i++)

{

   if(i%10==9)

      count++;

   if((i-i%10)/10==9)

   count++;

}

   printf("%d",count);

return 0;

}

      这俩题放一起呢是因为我犯错的知识点是一块的,第一个题做的时候第一次定义的变量全是int型,一输出一个1一输出一个1,死活看不出错哪了。整型做除法的时候小数位会被省去的不输出1才是见鬼了好吗!!!所以同理,第二个题就没必要很费劲的if((i-i%10)/10==9)啦,写成i%10==9就可以啦反正小数点会被省去┑( ̄Д  ̄)┍

      一个月里的菜鸟错误一箩筐我就不挨着写出来啦不然一篇博客字数都不够总结一下这个月我的一点小领悟叭~

  1. 能用局部变量就憋用全局变量!!!憋用!!!作为一只菜鸟习惯把全部变量都定义成外部变量因为很清楚省力但是完全高估了自己对自己写的代码的掌控力

  2. 不停重复同一个功能的话趁早赶紧封装成函数叭!!!来自一个写着写着就不知道自己写的代码到底是想干啥了的BUG写手 QAQ

  3. 养成随手注释的好习惯!!!养成随手注释的好习惯!!!养成随手注释的好习惯!!!重要的事情说三遍!!!今天整理博客的时候和我亲生的代码相看两不识我真是无语凝噎了

  4. 憋老只解决眼前这一个问题,多想想该怎么解决这同一类问题。并且!!!不要代码写完就丢过手不管了,多想想还能不能写的更简洁更优化,万一多想一步改变世界了呢23333333

  5. 尽早形成良好的代码风格。对这一条我理解不是很深刻但是各种书上和老师都是这么说哒,既然老前辈们总结出来经验了那就一定要听取才对嘛<( ̄︶ ̄)>

    希望关了博客我还记得这点小领悟并且能用上