第一部分:导包
(1)基础环境导包(必用)
#include <stdio.h>
#include <stdlib.h>
基础运行示例(hello,world!):
#include <stdio.h>
#include <stdlib.h>int main()
{
printf("Hello world!\n");
return 0;
}
第二部分:具体功能讲解
(1)输出语句
不加换行:
printf("Hello world!");
加上换行:
printf("Hello world!\n");
输出变量的值:
printf("%d",result);
输出的内容为文字+数字:
printf("result的值为=%d",result);
输出左对齐,占9列,不足空格补齐:
printf("%-9d%-9d%-9d\n",m,m*m,m*m*m);
输出浮点数保留2位有效数字:
printf("%.2f",b);
(2)输入语句
%d是int类型,%f是float浮点数,%c是字符,%s是字符串,%lf是double浮点数,%lld是long long长整型。
int a,b;
scanf("%d%d",&a,&b);
注意,两个%d之间不要加逗号。
变量前面要加上&符号。
(3)for循环
for(int i=0;i<3;i++)
{
printf("a\n");
}
(4)while循环
#include<stdio.h>
#include<stdlib.h>
int main()
{
int flag=1;
int n=10;
while(flag==1)
{
n--;
if(n<0)
{
flag=0;
}
else
{
printf("a");
}
}
}
(5)布尔数据类型
布尔数据类型需要导入新的包:
#include <stdbool.h> // 包含stdbool.h头文件来使用布尔类型
(6)静态数组
int arr[3]={1,2,3};
printf("%d",arr[0]);
输出数组的元素个数:
printf("%d",sizeof(arr)/sizeof(arr[0]));
(7)动态数组
定义:
int n=3;//数组的大小为3
int*arr=(int*)malloc(n*sizeof(int));//动态分配内存
输入:
printf("请输入数组元素:");
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
输出:
printf("输出数组元素:");
for(int i=0;i<n;i++)
{
printf("%d",arr[i]);
}
printf("\n");
扩充内存:
int new_n=5;
int*new_arr=(int*)realloc(arr,new_n*sizeof(int));//动态分配内存
扩充内存完整代码:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n=3;//数组的大小为3
int*arr=(int*)malloc(n*sizeof(int));//动态分配内存
printf("请输入数组元素:");
for(int i=0;i<n;i++)
{
scanf("%d",&arr[i]);
}
printf("输出数组元素:");
for(int i=0;i<n;i++)
{
printf("%d",arr[i]);
}
printf("\n");
//扩充内存
printf("扩充内存:\n");
int new_n=5;
int*new_arr=(int*)realloc(arr,new_n*sizeof(int));//动态分配内存
for(int i=n;i<new_n;i++)
{
scanf("%d",&new_arr[i]);
}
printf("输出数组元素:");
for(int i=0;i<new_n;i++)
{
printf("%d",new_arr[i]);
}
printf("\n");
return 0;
}
(8)字符串(字符数组)的输入和输出
#include <stdio.h>
#include <stdlib.h>
int main() {
char arr[50];
scanf("%s",&arr);
printf("%s",arr);
return 0;
}