首页 > 编程语言 >C语言程序设计-[22] 数组应用

C语言程序设计-[22] 数组应用

时间:2024-08-17 21:57:05浏览次数:12  
标签:count 22 int C语言 ++ 选完 数组 程序设计 include

1、简单插入排序算法

根据以上分析,代码与结果如下:

#include "stdio.h"

int main()
{    
	int count,j,x,a[101];
    scanf("%d",&x);
    if(x<=0)
		return;
    else
		a[1]=x;
    count=1;
    scanf("%d",&x);
    while(x>0)
    {     
		 for(j=count; x>a[j]&&j>0; j--)  //将数循环后移1位
            a[j+1] = a[j];
        a[++j] = x;   //把x放在a[j+1]的位置
        count++;
        scanf("%d",&x);      
    }
    for(j=1;j<=count;j++)
        printf("%d ",a[j]);
    return 0;
}

2、两个矩阵的乘积

根据上面分析可知,ij是最终数组的行和列,这个数组的每个元素是由数组a的一行乘以数组b的一列并加起来得到的,所以k是循环3组数相乘并加起来,具体代码与结果如下:

#include "stdio.h"

int main()
{   
	int  a[2][3]={{1,2,3},{4,5,6}};
    int  b[3][2]={{1,4},{2,5},{3,6}};
    int  c[2][2]={{0,0},{0,0}};
    int i,j,k;
    for(i=0;i<2;i++)
    {   for(j=0;j<2;j++)
        {     
		 	for(k=0;k<3;k++)
                c[i][j]=c[i][j]+a[i][k]*b[k][j];
        }
    }
    printf("the array a * array b is :\n");
    for(i=0;i<2;i++)
    {     
		for(j=0;j<2;j++)
            printf("%4d",c[i][j]);
        printf("\n");
    }
    return 0;
}

3、将两个有序数组合并为一个有序数组

分析这个问题如下:

  1. 刚开始时,最终数组c的每一个元素要么来自数组a,要么来自数组b,这时需要比较这两个数组的对应元素来选择,直止数组a或数组b选完了;
  2. 若数组a或数组b选完了,那么最终数组c的后续元素都来自那个没有选完的数组。

根据以上分析,其代码与结果如下:

#include "stdio.h"
#define M 3
#define N 5

int main()
{
	int i=0,j=0,k;
	int a[M]={7,13,89},b[N]={9,14,25,36,49},c[M+N];
	for(k=0;k<M+N && i<M && j<N;k++)   //从数组a和数组b中选元素
	{
		if(a[i]>b[j])
		{
			c[k]=b[j];
			j++;
		}
		else
		{
			c[k]=a[i];
			i++;
		}
	}
	if(i==M)   //若数组a选完了,则把数组b剩下的元素加上即可
	{
		for(;j<N;j++)
		{
			c[k]=b[j];
			k++;
		}
	}
	if(j==N)   //若数组b选完了,则把数组a剩下的元素加上即可
	{
		for(;i<M;i++)
		{
			c[k]=a[i];
			k++;
		}
	}
	for(k=0;k<M+N;k++)
		printf("%4d",c[k]);
	printf("\n");
	return 0;
}

标签:count,22,int,C语言,++,选完,数组,程序设计,include
From: https://blog.csdn.net/u013571432/article/details/141232267

相关文章

  • 【C语言】字符函数和字符串函数
    文章目录前言一、字符分类函数二、字符转换函数三、字符串函数的分类四、strlen函数的使用五、strcpy和strncpy函数的使用1.strcpy2.strncpy六、strcat和strncat函数的使用1.strcat2.strncat七、strcmp和strncmp函数的使用1.strcmp2.strncmp八、strstr函数的使用九、s......
  • [赛记] 暑假集训CSP提高模拟22 23
    连通块66pts老套路,删边改加边;但改完以后不知道怎么求最长路径了,当时也想到了维护直径,但不知道咋干;具体地,用并查集维护连通性,每次合并时需要维护新的直径,不难发现,新的直径的两个端点一定在原来的两个直径的四个端点中选;于是只有六种情况,枚举一下即可;我们要直径有啥用呢?当我们......
  • c语言计算二叉树的带权路径长度之和(WPL)
    1.WPL:树中全部叶节点的带权路径之和2.代码中所画的树为:3.求上述WPL:WPL=0*1+1*2+1*3+2*4+2*5=234.主要代码为:intwpl(Node*ROOT,inthigh){ intn=0; if(ROOT!=NULL){ n=ROOT->weight*high; n=n+wpl(ROOT->lchild,high+1); n=n+wpl(ROOT->rchild,high+1); } r......
  • 【漫谈C语言和嵌入式005】深入理解RAM与ROM:嵌入式系统存储器的核心
            在嵌入式系统设计中,存储器的选择与管理至关重要。存储器直接影响系统的性能、功耗和功能实现。在众多存储器类型中,RAM(随机存取存储器)和ROM(只读存储器)是最基本也是最重要的两类。理解它们的特点、区别和应用场景,对于设计高效、可靠的嵌入式系统至关重要。1.RA......
  • 【漫谈C语言和嵌入式006】深入解析NVRAM与Flash:嵌入式系统中的关键非易失性存储器
            在嵌入式系统设计中,非易失性存储器(Non-VolatileMemory,NVM)扮演着至关重要的角色。这类存储器能够在设备断电后保留数据,对于存储系统配置、固件、用户数据等关键信息至关重要。NVRAM(非易失性随机存取存储器)和Flash是两种常见的非易失性存储器类型,各有其独特的......
  • 【漫谈C语言和嵌入式004】深入理解RS232、RS422和RS485:嵌入式系统中的串行通信协议
            在嵌入式系统设计中,串行通信协议是设备间数据传输的重要方式。其中,RS232、RS422和RS485是三种常用的标准。这些协议不仅在工业控制、仪器仪表、网络通信等领域得到广泛应用,也在许多嵌入式系统项目中扮演着重要角色。在本文中,我们将深入探讨这三种串行通信标准......
  • 【漫谈C语言和嵌入式007】AD2S1210简介与应用:高精度旋转变压器到数字转换器的解析
            在精密运动控制和测量系统中,旋转变压器(Resolver)是一种常用的传感器,能够精确检测旋转轴的位置和速度。为了将旋转变压器的模拟信号转换为数字信号,便于微控制器或DSP进行处理,AD2S1210作为一款高性能的旋转变压器到数字转换器(RDC),为工程师提供了高精度、低延迟的......
  • VS2022实用调试技巧超详解
    文章目录1.什么是bug2.什么是调试(debug)3.Debug和Release4.VS调试快捷键4.1环境准备4.2调试快捷键5.监视和内存观察5.1监视5.2内存6.调试举例17.调试举例29.编程常见错误归类9.1编译型错误9.2链接型错误9.3运行时错误本文章以VS2022为例讲解调......
  • 《python语言程序设计》2018版第7章第06题代数:平方根 设计一个名为QuadraticEquation
    类代码部分classQuadraticEquation:def__init__(self,a,b,c):self.a=aself.b=bself.c=cdefset_a(self,a):self.a=adefget_a(self):returnself.adefset_b(self,b):self......
  • 《python语言程序设计》2018版第7章第05题几何:正n边形,一个正n边形的边都有同样的长度
    结果和代码这里只涉及一个办法方法部分defmain():rX,rY=eval(input("Enterregularpolygonxandyaxis:"))regular_num=eval(input("Enterregularnumber:"))side_long=eval(input("Entersidenumber:"))a=exCode07.Reg......