2019-9-6学啊哈C所得

本文分享了C语言学习心得,包括基本语法如判断、求和、比较大小的方法及实现代码,介绍了如何利用C语言进行游戏开发、倒计时等功能,并深入探讨了排序算法、内存管理等高级主题。

C语言学习心得

我学会了大致的
1、判断:while语句、if语句、for语句都会用到;

2、求和:几个数相加求和 、从1一直加到n;
(1)100以内可以被7整除和个位是7的数的和(代码)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,i;
    a=0;//a用来记录100以内可以被7整除和个位是7的数的和
    i=1;
    while(i<=100)//while循环(当条件未被满足时循环将一直继续)
    {if(i%7==0||i%10==7) a=a+i; 
    i=i+1;}//if语句嵌套于while语句中
    printf("%d",a);
    return 0;
}

3、比较大小:比较3、4个输入数的大小;
(1)选出最大的数(代码)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b,c,d,e;
    scanf("%d%d%d%d",&a,&b,&c,&d);
    if(a>b) e=a; 
    else e=b;//将a与b比较,选大的为e
    if(c>e) e=c;
    else e=e;//将c与e比较,选大的
    if(d>e) e=d;
    else e=e;//将d与e比较,选出最大的数输出
    printf("%d",e);
    return 0;
}

4、延迟运行时间:可以用来制作游戏、倒计时;
(1)倒计时代码

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int a,b;
    printf("2:00");
    sleep(1);//延迟一秒
    system("cls");//清除屏幕
    for(a=1;a>=0;a--)
    {
        for(b=59;b>=10;b--)
        {
            printf("%d:%d",a,b);
            sleep(1);//延迟一秒
            system("cls");
        }
        for(b=9;b>=0;b--)
        {
            printf("%d:0%d",a,b);
            sleep(1);
            system("cls");
        }
        printf("1:00");
        sleep(1);
        system("cls");
    }
    return 0;
}

5、清除屏幕:可以用来制作游戏、倒计时;
(1)奔跑的小人代码

#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("color 0a");
    int a,b;
    a=0;
    while(a<=100)//确保字母前进100次
    {
        b=1;
    while(b<=a)
    {
        printf(" ");
        b=b+1;
        
    }
    printf(" O\n");
        b=1;
    while(b<=a)
    {
        printf(" ");
        b=b+1;
        
    }
    printf("<H>\n");
        b=1;
    while(b<=a)
    {
        printf(" ");
        b=b+1;
        
    }//重复了3次确保3个字母同时前进
    a=a+1;
    printf("||\n");
    system("cls");//清除屏幕,推进字母
        
    }
    return 0;
}

6、调整控制台的颜色;
(1)使控制台背景为白,字体为黑(代码)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("color f0");//使控制台背景为白,字体为黑
    printf("wa wa wa");
    system("pause");
    return 0;
}

7、循环、分支语句的嵌套;qiant
(1)判断大小的if嵌套(代码)

#include <stdio.h>
#include <stdlib.h>
int main()
{
    system("color f0");
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a>=b) 
    {
             if(a>=c) printf("%d",a);
             else  printf("%d",c);
        
    }
    else
        {
            if(b>=c) printf("%d",b);
            else printf("%d",c);
            
        }
    return 0;
}//用来确保最大值

8、产生1个随机数;
(1)产生随机数用来猜

#include <stdio.h>
#include <stdlib.h>
#include <time.h>//时间函数,任何时间的值均不同
int main()
{
    int a,b,sum;
    sum=6;//表共有几次机会
    srand((unsigned)time(NULL));//初始化随机种子数
    a=rand()%100;//据提供给srand()的种子值返回一个随机数(在啊哈C中是0~32767)
    while(1)
    {
     sum--;
     scanf("%d",&b);
     if(a<b)
    printf("大了,请继续\n");
    if(a>b)
    printf("小了,请继续\n");
    if(a==b)
    {
        printf("恭喜你答对了\n");
        break;
        
    }
    if(sum==0)
    {
        printf("已经没有机会了\n");
        break;
        
    }
    }
    
    return 0;
}

9、输入与输出
(1)输入与输出的正常函数(printf("’); scanf("’)😉
(2)进阶函数(puts()(输出字符串)
(3) 输入单个字符getchar()带回显,
getche()不带回显但仍显示输入的字符;
getch()不带回显并且不显示输出字符;
输入字符串是scanf("%s",a)遇到空格会停止读入尽管你已经输入但输出
时会有停滞问题而gets(a)不会有;
(4)输出字符串puts(a)相当于会在末尾自动换行而printf("%s",a)不会;)

10、单个字符变量的赋值用单引号;字符串变量的赋值要用双引号;

11、一定要注意在写运算表达式时多写几个括号;

12、swith语句可以有多个case共用一个语句段(分支语句)swith语句中的变量对应case语句中的常量表达式;

13、自加运算符:
(1)j=++i:
等价于:i=i+1;
j=i;
(2) j=i++:
等价于:j=i;
i=i+1;

14、自减运算符:
(1)j=–i;
等价于:i=i-1;
j=i;
(2) j=i–;

15、排序算法
(1)冒泡排序先安排后面的;
(2)选择排序先安排前面的。
(选择排序代码)

#include <stdio.h>
#include <stdlib.h>
 int main()
{
    int a[11],i,t,j;//计算机一般会从0开始数,这样写是空下了a[0],从a[1]开始
    for(i=1;i<=10;i++)
    scanf("%d",&a[i]);//依次输入n个数
    for(i=1;i<=9;i++)//前(n-1)个数
  {
    for(j=i+1;j<=10;j++)//i后面的数,把a[i]与它所有后面的数进行比较
  {
      if(a[i]>a[j])
     {
        t=a[i];//把a[i]的值赋给t
        a[i]=a[j];//把a[j]的值赋给a[i]
        a[j]=t;//
      }//只有内循环彻底实行完毕,外循环才会开始下一次
  }
  }//这一步循环彻底完成,下一步才会开始
     for(i=1;i<=10;i++)
     printf("%d\n",a[i]);//循环输出a[i]中的值
     return 0;
}

16、内存4区
(1)代码区:函数代码,存放在代码区,函数名就是这个函数的地址。
(2)全局区:全局的变量,字符串常量,int a 初始化。
(3)栈区:内存5兆到10几兆。(尽可能不要太多地使用栈区)告诉计算机
int、double、 char定义一个变量。由C系统开辟释放。
(4)堆区:自己确定有多大,确定它用来装什么数据?用完之后还要不要继续
用?自己需决定开辟还是释放.

#include<stdlib.h>
                void *malloc(size)//在堆区开辟size个字节的内存。
                int *p;
                p=(int *)malloc(4);//指针p指向这段内存。
                // malloc函数不会自动地释放自己的内存。
                free(p)//释放
               注:C是面向过程;C++是面向对象;
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值