第六章 数组


文章目录

 


前言

本文是关于学习c语言数组的基本题目练习

 

一、一维数组

1.输入6个数,找出其中最大的数

代码如下:

#include<stdio.h>
int main()
{
	int a[40],i,max;
	for(i=0;i<6;i++)
		scanf("%d",&a[i]);
	max=a[0];
	for(i=0;i<6;i++)
	if(a[i]>max)
		max=a[i];
	printf("%d",max);
	return 0;}

 注意:这里不能只用一个循环就能搞定,还是定义两个循环,第一个输入数组,第二个进行比较。

2.把N个数按从小到大的顺序(升序)排列(冒泡法)

代码如下:

#include<stdio.h>
#define N 5
int main(void)
{
	int a[N],i,j,t,m;
	printf("please input %d numbers:\n",N);
	for(i=0;i<N;i++)
		scanf("%d",&a[i]);
        /*排序开始*/
	for(i=0;i<N-1;i++)
		for(j=0;j<N-1-i;j++)
		{	if(a[j]>a[j+1])
			{t=a[j];
			a[j]=a[j+1];
			a[j+1]=t;}
		}
		/*排序结束*/
		printf("the sorted numbers:\n");			
			for(m=0;m<N;m++)
			printf("%d ",a[m]);
			printf("\n");
		return 0;
}

运用宏定义,冒泡法进行排序

二、二维数组

1.矩阵转置

#include<stdio.h>
int main()
{ 
	int a[2][3]={{1,2,3},{4,5,6}},b[3][2],i,j;
	for(i=0;i<2;i++)
		for(j=0;j<3;j++)
			b[j][i]=a[i][j];
		for(j=0;j<3;j++)
		{	for(i=0;i<2;i++)
				printf("%d ",b[j][i]);
		printf("\n");}
			return 0;}

二维数组的赋值及输入输出,一般都要用二重循环

2.找出二维数组中的最大数及其所在位置

#include<stdio.h>
int main()
{
	int a[3][4],max,c,b,i,j;
	for(i=0;i<3;i++)
		for(j=0;j<4;j++)
			scanf("%d",&a[i][j]);
		max=a[0][0];
		c=0;
		b=0;
		for(i=0;i<3;i++)
			for(j=0;j<4;j++)
				if(a[i][j]>max)
				{max=a[i][j];
				c=i;
				b=j;}
				printf("\nmax: %d  row: %d col: %d\n",max,c,b);
				return 0;}

 注意:数组名不能和变量名重合,int a[3][4],a;这样就会出错

三、字符数组 

1.一维字符数组输入

#include<stdio.h>
int main()
{
	char a[30];int i;
	i=-1;
	do 
	{i++;
	scanf("%c",&a[i]);
	}while(a[i]!='\n');
	a[i]='\0';
	for(i=0;a[i]!='\0';i++)
		printf("%c",a[i]);
	printf("\n");
	return 0;}

 注意:循环结束的条件是a[i]!='\n',输入回车符则循环结束

#include<stdio.h>
int main()
{
	char s[30];
	scanf("%s",s);
	printf("%s\n",s);
	return 0;}

 遇到空格‘\0’输入结束

2.统计字符串中的字符总个数,字母个数以及数字个数

#include<stdio.h>
#include<string.h>
int main()
{
	char a[80];
	int i,t,l=0,d=0;
	gets(a);
	t=strlen(a);
	strlwr(a);
	for(i=0;a[i]!='\0';i++)
	{if(a[i]>='0'&&a[i]<='9')
	d++;
	else if(a[i]>='a'&&a[i]<='z')
		l++;}
	printf("total=%d,letter=%d,digit=%d\n",t,l,d);
	return 0;}

字符总和用的是strlen函数,将所有字母转换成小写字母用的是strlwr函数

3.查找人员是否为羊村人员

#include<stdio.h>
#include<string.h>
#define N 3
int main()
{
	char a[N][20]={"喜羊羊","美羊羊","懒羊羊"};
		char name[20];
	int i;
	gets(name);
	for(i=0;i<N;i++)
		if(strcmp(name,a[i])==0) break;
		if(i<N)
			printf("%s是羊村的\n",name);
		else
	        printf("%s不是羊村的\n",name);
		return 0;}

 

内容概要:本文档详细介绍了一个基于Matlab的项目案例,重点讲述了如何使用卷积神经网络(CNN)与变换器(Transformer)组合起来的深度学习模型来进行多变量回归预测任务,特别是时间序列预测。项目包括了数据的准备、处理以及标准化工作;构建并训练CNN-Transformer混合模型的具体步骤,比如设计网络结构、选定合适的激活函数和优化器等;对所建立模型进行全面评价,涵盖多指标评估方法,误差分布视觉化表示等方面的工作;以及一个友好的图形用户界面(GUI),以方便使用者操作。通过这个项目不仅能加深读者对该类型深度学习的理解,还可以为金融预测、气候变化建模等领域提供技术支持。 适合人群:对深度学习感兴趣的科研工作者、工程师,以及从事时间序列分析的专业人士。 使用场景及目标:该项目可用于任何涉及多变量输入和时间序列的回归问题,例如股价变动、天气预报或者销售趋势的研究。主要目标是在现有传统方法的基础上大幅提升预测精度,同时确保模型具备较好的泛化能力和低的过拟合风险。 其他说明:除了理论知识外,文档内含大量实践代码示例,并附带详细的注释,便于跟随指导完成实际项目搭建。此外还有关于模型性能优化技巧的内容,比如如何防止过拟合、数据增强策略及使用GPU加速等实用建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值