C语言学习笔记w2d5

数组

一维数组

用一个变量来存储具有一定关系的数据,的数据集合叫数组
其中存储的变量是数组元素

a [ i ]
//数组名 [数据下标]

定义时:

int a [ 100 ]
//数据类型 数组名 [长度(个数)]

部分赋值时,后续的具数据可以缺省

double balance[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}
int last[5] = {1,2,3}//缺省之后,last [ 3 ]、last [ 4 ]==0
int last[5] = {1,NULL,3,NULL,5}

**不建议!**以变量定义数组,例如:

int n=10;
int a[n]

练习

练习:定义一个一维数组a[6]={1,4,6,2,4,10},输出其中最大的数组元素与下标

#include<stdio.h>
int main(){
	int a[6]={1,5,6,7,4,6};
	int i=0;
	int x=0;
	for(i=1 ; i<6 ; i++){
		if(a[x]<a[i]){
			a[x]=a[i];
			x=i;}
	}
	printf("a[%d]=%d",x,a[x]);
	return 0;
}

扩展
“a” 是一个指向 “&a[0]” 的指针
因此,*(a + 4) 是一种访问 a[4] 数据的合法方式
double *p;
double a[10];
p = a;是合法的
使用*p、*(p+n)访问数据

字符数组

char a[10];

字符串

多个字符构成的序列,其实字符串==字符数组,但有一定的区别

所以,赋值时可以
char a[10]=“abcdef”
注意错误用法:

a="abcdef"
a [10]="abcdef"//只能在定义的时候用,这里的a[10]是下标10的

**常量字符串末尾默认有一个 ’ \0 ’ **
在这里插入图片描述
特殊的定义方法:

int a[] = {1,2,3,4,5};//大小为5
char str[] = {'c','a','b'};//大小为3,有{}的末尾没有'\0'
char str[]="acb";//大小为4
sizeof(a)

切忌:

  1. 越界
  2. 定义赋值傻傻分不清
  3. 字符串的结束’ \0 ‘,在定义了长度后,没有字符的地方都是’\0’
输入与输出
  • 输出
    格式化:"%s",遇到’ \0 '结束
    ?在char a [6]="abcdef"时到底会怎样参考

  • 输入
    scanf("%s",a);//输入一整串
    接收的字符串 空格或回车结束。例如:输入 123 231 ,存入的只有123

练习

输入一个字符串,获取字符串中有多少个大写字母,小写字母
在这里插入图片描述
在这里插入图片描述

多维数组

作业

  1. 选择法、冒泡法排序,i<4
    在这里插入图片描述

  2. 数组⼤小为20,输⼊10个整数,在输⼊是就进⾏排序,得到降序序列。之后每输⼊⼀个,不打 乱数组降序

  3. 已知有⼀个字符数组,把数组中⼤写字⺟改为小写字⺟,小写字⺟改为⼤写字⺟
    char a[50] = “aBcDeFgHiJ”;

#include<stdio.h>
int main(){

        char str[50];
        scanf("%s",str);
        for(int i=0;str[i]!='\0';i++){

                if(str[i]>='A'&&str[i]<='Z'){

                        str[i]=str[i]+32;
                }
                else if(str[i]>='a'&&str[i]<='z'){

                        str[i]=str[i]-32;
                }
        }
        printf("%s",str);
}
  1. 已知有⼀个字符数组b[] =“hello”,把数组b拷⻉到数组a[10]中
    ** 注意:sizeof() 是字节 **
#include<stdio.h>
int main(){
    char b[10] ="hello";
    char a[10] ;
    for (int i = 0; i < 10; i++)
    {
        a[i]=b[i];
    }
    printf("b:%s\n",b);
    printf("a:%s",a);
    return 0;
}
  1. 有两个数组str1,str2,把数组str2与str1拼接在⼀起存放在str1中
    str1[20] = "hello ";str2[] = "world
#include<stdio.h>
int main(){
    char str1[20] = "hello ";
    char str2[] = "world";
    int count1=0;
    int count2=0;
    for(int i=0;str1[i]!='\0';i++){
        count1++;
    }
    for(int i=0;str2[i]!='\0';i++){
        count2++;
    }
    int k=0;
    for (int j = count1; j < count1+count2; j++)
    {
        str1[j]=str2[k];
        k++;
    }
    
    printf("%s\n",str1);
    return 0;
}
  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)javaEE_SSH_mysql码头船只出行及配套货柜码放管理系统的设计与实现(源码+数据库sql+lun文+视频齐全)

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值