C语言(11)

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 ;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_41392061

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值