day5数组

定义:同种数据类型的集合,一片连续的内存空间

一般形式:

        存储类型  数据类型  数组名【元素个数】

eg:

        int arr[5];

操作数组元素的方法:

下标法:

        (1)下标从0开始

        (2)数组名[下标]

1.数组初始化

        (1)完全初始化

                int arr[5] = {1,2,3,4,5};

        (2)部分初始化:给部分元素赋值,没有赋值的元素自动赋值为0

                int arr[5] = {1,2,3};

                int arr[5] = {0};(元素全为0)

                int arr[5] = {[1] = 1,[3] = 2};

(3)自动计数原则:(不能不赋初始值)

        int arr[ ] = {1,2,3};

        int arr[ ] = {1,[2] = 2,[4] = 5};

(4)可变数组(危险不要使用)        ---动态内存

int n;

n = 10;

int arr[n];

不可以在定义的时候赋初始值

int arr[n] =  {1,2,3};        //error

(2)赋值

        int arr[5];

        arr[0]  = 20;

        arr[1] = 20;

数组的遍历:

        int i;

        for(i = ;i < 5;i++)

        {

printf("%d\n",arr[i]);

}

逆序存储

终端输入逆序存储

int a[10] = {1,2,3,4,5,6,7,8,9,10};
 
#define N 6
int main(int argc, char *argv[])
{
   int i;
   int arr[N];
   //终端输入
   for(i = 0; i < N; i++)
  {
       printf("arr[%d]= ", i);
       scanf("%d", &arr[i]);
  }
   
   //打印
   for(i = 0; i < N; i++)
{
       printf("%d\t", arr[i]);
  }
   puts("");
   
   //逆序
   for(i = 0; i <= N / 2; i++)
  {
       int temp;
       temp = arr[i];
       arr[i] = arr[N - 1 -i];
       arr[N - 1 -i] = temp;
  }
   //打印
   for(i = 0; i < N; i++)
  {
       printf("%d\t", arr[i]);
  }
   puts("");
   return 0;
}  

冒泡排序

int arr[10] = {10, 99, 66, 77, 33, 58, 26, 25, 18, 6};
  //趟数
   int j;
   for(i = 0; i < 10 - 1; i++)
  {  
       //两两比较
       for(j = 0; j < 10 - 1 - i; j++)
      {
           if(arr[j] <  arr[j+1])
          {
               int temp;
               temp = arr[j];
               arr[j] = arr[j+1];
               arr[j+1] = temp;
          }
      }
  }  

char 型数组

输入大小写字符串,输出为小大写字符串

/*===============================================
*   文件名称:8.c
*   创 建 者:     
*   创建日期:2024年08月05日
*   描    述:
================================================*/
#include <stdio.h>
#include <ctype.h>
int main(int argc, char *argv[])
{
    char str[32]={0};
    printf("input str: ");
    gets(str);
    int i = 0;
    while(1)
    {
        if(str[i] == '\0')
            break;
         if(str[i] >='a'&& str[i] <='z')
        {
            str[i] = str[i] - ' ';
        }
        else if(str[i] >='A'&& str[i] <='Z')
        {
            str[i] = str[i] + ' ';
        }
        i++;
    }
    printf("%s\n",str);
    

    return 0;
} 

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值