首页 > 其他分享 >动态数组

动态数组

时间:2022-11-13 18:37:37浏览次数:34  
标签:int 申请 地址 exit 数组 printf 动态

//不需要数组,指针可以当成数组用 
#include <stdio.h>
#include <stdlib.h>
int main()
{
	//变量定义
	int max;
	int *p;
	int i = 0;
	int number;
	
	//提示输入最大值
	printf("请输入数组最大值:"); 
	if(scanf("%d",&max) != 1){
		printf("数组最大值键入失败\n");
		exit();
	}
	
	//申请地址
	p = (int *)malloc(max * sizeof(int));
	
	//判断地址申请成功与否 
	if(p==NULL){
		printf("地址申请失败\n"); 
		exit(-1);
	}
	//给数组赋值 
	printf("请给数组元素赋值(q退出):\n");
	while(i<max && scanf("%d",(p+i))==1){
		++i;	
	}
	//格式化输出 
	printf("这是输入的%d个值\n", number = i);
	for(i=0; i<max; i++){
		printf("%-3d", *(p+i));
		if(i%5==4){
			printf("\n");
		}
	}
	if(i%5 != 0){
		printf("\n");
	}
	printf("结束\n"); 
	return 0;
} 

学习到:

  1. 思路:(用指针指向申请的内存首地址(相当于数组))
    1定义用于指向申请内存地址的指针
    2确定内存的最大值(或者说容量)
    判断赋值是否成功
    3用malloc申请地址
    判断申请地址是否成功
    4给申请的地址内容赋值
    5格式化输出
  2. scanf函数
  • 返回值:成功键入的数据个数
    可以作if参数,判断是否键入成功
    可以作while循环的参数,作为循环的截止条件
  1. exit与return
    区别:exit是函数,return是关键字
    1exit让程序结束
    return若是非主函数中,则返回上一级;若是主函数,则程序结束
    4.malloc函数
  • 在头文件<stdlib.h>中
  • 参数是申请的地址大小
  • 返回值是无类型指针(void *),所以需要进行一下强制类型转换
    eg:
    int *p = (int *)malloc(5 * sizeof(int );
  1. 两个格式化输出语句
    if(i%5==4){ //i从0开始
    printf("\n");
    }
    if(i%5 != 0){
    printf("\n")
    }
    两个相互配合,达到无论输入多少个都会有换行符输出。
    当输入个数正好是5的倍数时,上面会输入换行;当上面不是4的倍数时,下面的if会输入换行

标签:int,申请,地址,exit,数组,printf,动态
From: https://www.cnblogs.com/97rong/p/16886520.html

相关文章

  • #yyds干货盘点# 动态规划专题:二维前缀和
    1.简述:描述给你一个n行m列的矩阵A,下标从1开始。接下来有q次查询,每次查询输入4个参数x1,y1,x2,y2请输出以(x1,y1)为左上角,(x2,y2)为右下角的子矩阵......
  • 322. 零钱兑换 ---- 动态规划
    给你一个整数数组coins,表示不同面额的硬币;以及一个整数amount,表示总金额。计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额,......
  • Python开发人脸动态追踪
    Python开发人脸动态追踪导入库文件cv2通过pip命令安装pipinstallopencv-python或者在在设置里面找到+进行opencv-python你还要去下载文件:haarcascade_frontalface_alt.xm......
  • 动态规划(Dynamic Programming)套路学习 ----- 动态规划、备忘录、dp table、状态压缩、
    明确套路:首先,动态规划问题的一般形式就是求最值。而求解动态规划的核心问题是穷举。动态规划三要素。重叠子问题最优子结构状态转移方程⭐ 实战:一、斐波那......
  • JS动态表格添加数据删除
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>动态表格</title><style>table{border:1pxsolid;margin:auto;......
  • 6.numpy数据的常用操作 数组的变形,连接合并,分裂等
      3.变形   使用reshape函数,注意参数是一个tuple!#产生0-10的随机整数arr6=np.random.randint(0,10,size=(20))arr6array([2,8,9,6,2,6,6,1......
  • 5.numpy数组的索引和切片
    三、ndarray的基本操作  索引和切片1.索引维与列表完全一致多维时同理2.切片维与列表完全一致多维时同理将数据反转,例如[1,2,3]--->[3,2,1]两个::进行切片-------......
  • 最长无重复子数组
    最长无重复子数组 import java.util.*;public class Solution {    /**     *      * @param arr int整型一维数组 the array    ......
  • spring set-数组注入
    还是举例说明:QianDaye类publicclassQianDaYe{privateString[]aiHaos;//多个女性朋友privateWoman[]womens;publicvoidsetAiHaos(Strin......
  • 两个动态规划的经典问题
    硬币问题问题描述:设有n种不同面值的硬币,各硬币的面值存于数组T[1:n]中。现要用这些面值的硬币来找钱。可以使用的各种面值的硬币个数存于数组Coins[1:n]中。对任意钱数0......