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

被折叠的 条评论
为什么被折叠?



