1.全局变量,局部变量,代码块变量
include<stdio.h>
int i =1;
int main(void)
{
printf("全局变量i:%d\n",i);
int i = 2;
printf("局部变量i:%d\n",i);
{
int i =3;
printf("代码块变量i:%d\n",i);
}
return 0;
}
~
2.一维数组
1 #include<stdio.h>
2 #include<string.h>
3
4 int main(void)
5 {
6 int array[5];//声明了一个容量为5的整形数组
7 printf("array:%d, %d, sizeof:%d\n",array[0],array[3],sizeof(array));
8
9
10 int array1[5] = {0};
11 printf("array1:%d, %d, sizeof:%d\n",array1[0],array1[3],sizeof(array1));
12
13 int array2[1024];
14 memset(array2,0,sizeof(array2));
15 printf("array2:%d, %d, sizeof:%d\n",array2[0],array2[3],sizeof(array2));
16
17 int array3[5] = {1};
18 printf("array3:%d, %d\n",array3[0],array3[3]);
19
20 int array4[5] = {1,2,3,4,5};
21 printf("array4:%d, %d\n",array4[0],array4[3]);
22
23 #if 0
24 int array5[5] = {1,2,3,4,5,6,7,8,9,10};
25 printf("array5:%d, %d, %d\n",array5[0],array5[3],array5[7]);
26 #endif
27 #if 0
28 int array5[5] = 1;//error
29 #endif
30 #if 1
31 int array5[] = {1,2,3,4,5};//不推荐
32 printf("array5:%d, %d, sizeof:%d\n",array5[0],array5[3],sizeof(array5));
33 #endif
34 return 0;
35 }
3.数组传参
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
int input_int(void);//输入整数函数
int myrandom(int i);//返回一个随机数
int input_all(int array[],int length);//给数组进行输入
int input_select(int array[],int begin,int number);//从某个位置给数组赋值
int output_all(int array[],int length);//将数组内容进行输出
int output_select(int array[],int begin,int number);//输出数组的一部分
int main(void)
{
int array[1024];
memset(array,0,sizeof(array));
#if 0
input_int(array,10);
output_all(array,20);
#endif
#if 0
input_int(array,20);
output_all(array,20);
#endif
#if 1
input_all(array,100);
output_all(array,100);
#endif
#if 0
input_select(array,10,10);
output_all(array,35);
#endif
#if 1
input_all(array,1024);
output_select(array,20,10);
#endif
#if 0
int res = 0;
do{
res = inpuut_int(array,1024);
if(res == 0){
memset(array,0,sizeof(array));
}
}while(!res);
#endif
return 0;
}
int input_all(int array[],int length)
{
int i =0;
printf("\n给数组赋值,输入一个按一下回车\n");
#if 0
int res = 0;
for(i = 0;i<length;i++){
res = input_int();
array[i] = res;
}
#endif
#if 0
int res = 0,check = 0;
for(i=0;i<length;i++){
check = scanf("%d",&res);
getchar();
if(check <= 0){
printf("input error!\n");
return 0;
}
array[i] = res;
}
#endif
for(i=0;i<length;i++){
array[i] = myrandom(i);
}
printf("input ok!\n");
return 1;
}
int input_select(int array[],int begin,int number)
{
printf("\n请给数组赋值,输入一个按一下回车\n");
int i = 0,res = 0, check = 0;
int length = begin + number;
for(i=begin;i<length;i++){
check = scanf("%d",&res);
getchar();
if(check <= 0){
printf("input error!\n");
return 0;
}
array[i] = res;
}
printf("input ok!\n\n");
return 0;
}
int output_all(int array[],int length)
{
printf("打印数组从第1个到第%d个的元素!\n",length);
int i =0,j = 1;
for(i=0;i<length;i++){
printf("%d ",array[i]);
if(j==10){
printf("\n");
j = 0;
}
}
printf("output ok!\n\n");
return 0;
}
int output_select(int array[],int begin,int number)
{
printf("打印数组从第%d个到第%d个的元素\n",begin,begin+number);
int i = 0, j = 1;
int length = begin + number;
for(i = begin;i<length;i++){
printf("%d",array[i]);
if(j == 10){
printf("\n");
j = 0;
}
}
printf("output ok!\n\n");
return 0;
}
int input_int(void)
{
int input = 0;
int check = scanf("%d",&input);
if(check <= 0){
printf("input error!\n");
}
return input;
}
int myrandom(int i)
{
srand(i);
return rand() % 100;
}
4.数组增删改查
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define CLEAR while(getchar() != '\n');
void array_input(int arr[],int length);//输入
void array_output(int arr[],int length);//输出
void array_add_after(int arr[],int number,int length);//后插
void array_delete(int arr[],int number,int length);//删除
void array_change(int arr[],int before,int after,int length);//修改
int array_find(int arr[],int what,int length);//查找
int main(void)
{
int array[1024];
memset(array,-1,sizeof(array));
//输入输出
array_input(array,10);
array_output(array,10);
//后插操作
array_add_after(array,12345,1024);
array_output(array,20);
//删除操作
array_delete(array,12345,1024);
array_output(array,20);
//修改操作
array_change(array,9,12345,1024);
array_output(array,20);
return 0;
}
void array_input(int arr[],int length)
{
printf("给数组输入元素,输入字符退出!\n");
int i =0, check =0;
for(i=0;i<length;i++){
printf("请输入第%d个元素:",i+1);
check = scanf("%d",&arr[i]);
CLEAR;
if(check <= 0){
break;
}
}
printf("input ok!\n\n");
}
void array_output(int arr[],int length)
{
printf("输出数组元素!\n");
int i =0,j = 1;
for(i =0 ;i<length;i++){
printf("%-3d",arr[i]);
if(j == 10){
printf("\n");
j = 0;
}
}
printf("output ok!\n\n");
}
//查找
int array_find(int arr[],int what,int length)
{
printf("%s %s %d\n",__FILE__,__func__,__LINE__);
int i = -1;
for(i = 0;i<length;i++){
if(arr[i] == what){
break;
}
}
return i;
}
//后插
void array_add_after(int arr[],int number,int length)
{
printf("%s %s %d\n",__FILE__,__func__,__LINE__);
int pos = array_find(arr,-1,length);
arr[pos] = number;
printf("add after ok\n\n");
}
//删除
void array_delete(int arr[],int number,int length)
{
printf("%s %s %d\n",__FILE__,__func__,__LINE__);
int pos = array_find(arr,number,length);
if(-1 < pos){
arr[pos] = -1;
printf("delete ok!\n");
}else{
printf("delete fail\n\n");
}
}
//修改
void array_change(int arr[],int before,int after,int length)
{
printf("%s %s %d\n",__FILE__,__func__,__LINE__);
int pos = array_find(arr,before,length);
arr[pos] = after;
printf("change ok\n\n");
return ;
}