c语言判断两个数组子集,精解C语言之数组

思想重要,背代码没有用;理解重要,灵活会用才能成为大佬。

一、一维数组

形式为:arrayName[index]

备注:

(1)int a[4];定义了一个长度为4的整型数组,名字是a;

(2)单独的 a[4]表示数组中的第5个元素。

从简单开始

/*

求两个数之和

*/

#include

int main(){

int a;

int b;

a=5,b=8;

printf("%d",a+b);//注意输出得类型

return 0;

}

求平方和

#include

int main(){

int a[20];

int i;

for(i=0;i<20;i++){

a[i]=i*i;

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

}

return 0;

//或者单独打印输出也可以

// for(i=0;i<20;i++){

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

// }

}

求两元素之和:

#include

int main(){

int a[20],b[10];

int i,sum;

for(i=0;i<20;i++){

a[i]=i*i;

b[i]=i*i-2;

sum=a[i]+b[i];

printf("%d\n",sum);

}

return 0;

//或者单独打印输出也可以

// for(i=0;i<20;i++){

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

// }

}

二、二维数组(可以理解为数学中的矩阵)

二维数组定义的一般形式是:

dataType arrayName[length1][length2];

其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。

#include

int main(){

int a[10][10];

int i,j;

for(i=0;i<10;i++){

for(j=0;j<10;j++){

a[i][j]=i+j;

printf("%5d", a[i][j]);

}

printf("\n");//输出完一行以后换行形成矩阵

}

return 0;

}

运行结果:

cd7ee2b61a36

image.png

下面改写为手动输入矩阵元素,这里把元素个数降低一下进行测试

#include

int main()

{

int a[4][4];

int i, j;

printf("请输入16个元素:\n");

for (i = 0; i < 4; i++)

{

for (j = 0; j < 4; j++)

{

scanf("%d", &a[i][j]);

}

}

for (i = 0; i < 4; i++)

{

for (j = 0; j < 4; j++)

{

printf("%5d", a[i][j]);

}

printf("\n");//输出完一行以后换行形成矩阵

}

return 0;

}

执行结果:

cd7ee2b61a36

image.png

求元素与对角线元素分别加和:

#include

int main()

{

int a[4][4];

int i, j,sum1=0,sum2=0;

printf("请输入16个元素:\n");

for (i = 0; i < 4; i++)

{

for (j = 0; j < 4; j++)

{

scanf("%d", &a[i][j]);

}

}

for (i = 0; i < 4; i++)

{

for (j = 0; j < 4; j++)

{

sum1=sum1+a[i][j];//元素加和

printf("%5d", a[i][j]);

}

printf("\n");//输出完一行以后换行形成矩阵

}

//计算对角线

for (i = 0; i < 4; i++)

{

sum2=sum2+a[i][i];//元素加和

printf("对角线的第%d行%d列的元素为:%5d", i+1,i+1,a[i][i]);

printf("\n");//输出完一行以后换行形成矩阵

}

printf("所有元素之和为:%5d\n", sum1);

printf("对角线元素之和为:%5d", sum2);

return 0;

}

执行结果:

cd7ee2b61a36

image.png

计算数组个数及对应值

# include

int main()

{

int a[10]={1,34,5,6,8,2,-5,-5,0,66};

int cnt = sizeof(a) / sizeof(a[0]);

int i=0;

printf(" 元素个数为|a[i]| = %d\n", cnt);

for(i=0;i<10;i++){

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

}

return 0;

}

执行结果:

cd7ee2b61a36

image.png

遍历2维数组及对应值

#include

int main()

{

int i = 0, j = 0;

int arr[4][4] = { { 11,-12,3,1 },{ 2,-3,4,-4 },{ -3,4,5,0 },{ 4,5,-6,9 }};

//遍历2维数组

for (i = 0;i<4;i++) {

for (j = 0;j<4;j++)

{

printf("arr[%d][%d] = %d ", i+1, j+1, arr[i][j]);

}

printf("\n");

}

return 0;

}

执行结果:

cd7ee2b61a36

image.png

判断数组中是否包含某个元素(通过索引判断)

#include

//通过索引查询一维数组

int main()

{

int nums[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int i, num, index=-1 ;

//这里的-1是用来判断输入负号的情况,也可设置其他

printf("请输入一个整数: ");

scanf("%d", &num);

for(i=0; i<10; i++)

{

if(nums[i] == num)

{

index = i;

break;

}

}

if(index < 0 || index>10)

{

printf("很遗憾,%d不在数组中!\n", num);

}

else

{

printf("太棒了,%d在数组中, 在数组中的位置为%d.\n", num, index);

}

return 0;

}

执行结果:

cd7ee2b61a36

image.png

三、字符数组

打印字符型

#include

#include

int main(){

char str[30];

char c;

int i;

for(c=97,i=0; c<=122; c++,i++){

str[i] = c;

}

printf("%s\n", str);//以数字生成字符型 ,通过ASCII 码表可知

long len = strlen(str);

printf("这个字符数组的长度为 %ld.\n", len);

return 0;

}

执行结果:

cd7ee2b61a36

image.png

字符串连接函数 strcat()

strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:

strcat(arrayName1, arrayName2);

arrayName1、arrayName2 为需要拼接的字符串。

strcat() 将把 arrayName2 连接到 arrayName1 后面,并删除原来 arrayName1 最后的结束标志'\0'。这意味着,arrayName1 必须足够长,要能够同时容纳 arrayName1 和 arrayName2,否则会越界(超出范围)。

strcat() 的返回值为 arrayName1 的地址。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值