精华内容
下载资源
问答
  • 有下面这样的一个二维表,请将其使用二维数组输出 姓名 语文 数学 英语 张三 80 70 90 李四 40 50 90 王五 90 98 100 题解 与几位童鞋交流了一下发现他们都把汉字单独拿出来了,只用数组存储的成绩,...
  • C语言先开辟一个位数组的内存,再通过指针的传递用子函数为其赋值 static float pRefImg[5][5];////从旋转后的图像中挖取匹配的基准图 static float(*temp_pRefImg)[5] = pRefImg; int main() { re(temp_pRefImg...

    C语言先开辟一个二位数组的内存,再通过指针的传递用子函数为其赋值

    
    static float pRefImg[5][5];从旋转后的图像中挖取匹配的基准图
    static float(*temp_pRefImg)[5] = pRefImg;
    int main()
    {
    	re(temp_pRefImg, 5);
    	for (int i = 0; i < 5; i++)
    	{
    		for (int j = 0; j < 5; j++)
    		{
    			printf("--%f", pRefImg[i][j]);
    		}
    	}
    	system("pause");
    }
    //调用函数
    void re(float (*input)[5], int num)
    {
    	for (int a = 0; a < 5; a++)
    	{
    		for (int b = 0; b < num; b++)
    		{
    			*(*(input+a)+b) = 1.0;
    		}
    	}
    }
    

    时间复杂度是指计算操作数量,而不是绝对的运行时间

    展开全文
  • c语言中经常需要通过函数传递二维数组,有三种方法可以实现,如下: 方法一, 形参给出第二维的长度。 例如: #include void func(int n, char str[ ][5] ) { int i; for(i = 0; i < n; i++) printf("/nstr...
  • C语言二维数组字符串的赋值

    千次阅读 2021-05-19 09:07:13
    今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理。1、在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下:void fun(int a[5][20]); //合法void fun(int a[]...

    今天用到了二维数组作为参数传递的程序,通过网上搜索,针对自己遇到的问题做个整理。

    1、在被调用函数的形参数组定义可以省略第一维的大小,第二维不可省略,如下:

    void fun(int a[5][20]); //合法

    void fun(int a[][20]); //合法

    void fun(int a[5][]); //不合法

    void fun(int a[][]); //不合法

    将二维数组作为形参时,第一维大小可以省略,第二维不可省略,这是有编译器原理限制的,在内存中按数组排列规则存放(按行存放),而并不区分行和列,如果在形参中不说明列数,则系统无法决定应为多少行多少列。

    2、实参数组维数可以大于形参数组维数,如:

    void fun(int a[5][20]);//形参为a[5][20]

    int a[10][20]; //定义实参数组

    这时形参数组只去实参数组的一部分数据。

    3、字符串二维数组赋值

    3.1、初始化赋值void fun(char a[][20])

    {

    //实现函数功能

    }

    void main()

    {

    char str[][20]={"123","456","789"};

    fun(str);

    }

    3.2、采用strcpy函数,需要#includevoid fun(char a[][20])

    {

    //实现函数功能

    }

    void main()

    {

    char str[3][20];

    strcpy(str[0],"123");//或者用sprintf(str[0],"123");

    strcpy(str[1],"456");//或者用sprintf(str[1],"456");

    strcpy(str[2],"789");//或者用sprintf(str[2],"789");

    fun(str);

    }

    展开全文
  • 这种常规形式的数组一般使用不过二维,并且数组名很特殊,有跟指针以及地址有密不可分的关系,但是不一样,并且它使用数据的静态存储区。... //二维数组下标int sum = 0; //当前科目的总成绩int av...

    这种常规形式的数组一般使用不过二维,并且数组名很特殊,有跟指针以及地址有密不可分的关系,但是不一样,并且它使用数据的静态存储区。要使用大容量的动态内存,需要单独开辟,这里不做介绍,并且支持变量形式的申请。更多c语言数组基础知识可以翻看我之前画的博客。

    先看一段代码

    #include int main(){

    int i, j; //二维数组下标

    int sum = 0; //当前科目的总成绩

    int average; //总平均分

    int v[3]; //各科平均分

    int a[5][3]; //用来保存每个同学各科成绩的二维数组

    printf("Input score:\n");

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

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

    scanf("%d", &a[j][i]); //输入每个同学的各科成绩

    sum += a[j][i]; //计算当前科目的总成绩

    }

    v[i]=sum/5; // 当前科目的平均分

    sum=0;

    }

    average = (v[0] + v[1] + v[2]) / 3;

    printf("Math: %d\nC Languag: %d\nEnglish: %d\n", v[0], v[1], v[2]);

    printf("Total: %d\n", average);

    return 0;

    }

    再看一段代码:

    #include int main(){

    int i, j, k;

    int a[2][5][3]={{ {1,2,3}, {2,3,4}, {3,4,5}, {4,5,6}, {5,6,7} }, { {10,20,30}, {20,30,40}, {30,40,50}, {40,50,60}, {50,60,70} }},;

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

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

    for(k=0; k<3; k++){

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

    }

    }

    }

    return 0;

    }

    打印二维数组的三种方法

    方法一:常规法

    老老实实传二维数组。

    void print1(int arr[3][5], int row, int col)

    {

    int i = 0;

    int j = 0;

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

    {

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

    {

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

    }

    printf("\n");

    }

    }

    int main()

    {

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

    print1(arr, 3, 5);

    return 0;

    }

    这段代码块,arr[3][5]里的3可省略,降维后与前一维度无关.但5不能省略,因为降维后的指针类型与元素个数有关,省略后指针会类型不明确.

    方法二:传指针法

    数组传参都会发生降维,降维成指向其内部元素的指针,因为二维数组被看成一个数组元素为一维数组的一维数组。所以在这里,二维数组arr降维成一个指向一维数组的指针,即(*arr)[5],这里与3也就没有任何关系了。

    void print2(int (*arr)[5], int row, int col)

    {

    int i = 0;

    int j = 0;

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

    {

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

    {

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

    }

    printf("\n");

    }

    }

    int main()

    {

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

    print2(&arr, 3, 5);

    return 0;

    }

    方法三:一维数组打印法

    在我所总结的关于规律里,认为所有的不管几维数组,都可以被看为一维数组。所以二维数组就是一维数组,只不过里面的元素为一维数组。所以我想要通过一维数组来打印二维数组。这里假设打印一个3行3列的数组。arr[3][3].

    我们通过画图来找灵感:二维数组的下标我们很容易得到,现在问题是怎么得到这个一维数组的下标?我们先把我们需要的新下标列出来,然后再来寻找i,j和新下标之间的关系,通过观察我们能得到:新下标=i*row+j

    cf2c760c9d694bdca18213d5aa8a9a1f.jpg

    那么代码如下:

    void print3(int *arr, int row, int col)

    {

    int i = 0;

    int j = 0;

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

    {

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

    {

    printf("%d ", arr[i*row+j]);

    }

    printf("\n");

    }

    }

    int main()

    {

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

    print3(arr, 3, 3);

    return 0;

    }

    参考:

    https://blog.csdn.net/qq_42913794/article/details/89604323

    http://c.biancheng.net/view/1829.html

    展开全文
  • C语言二维数组赋值方式

    千次阅读 2020-03-26 19:25:06
    1 #include<stdio.h> 2 int main(){ 3 /* char chh[]={'a','a','a','a','a','\0'}; 4 printf("%s",chh);*/ 5 //二维数组 6 //在定义时赋值 7 int n...

    1   #include<stdio.h>
      2 int main(){
      3         /*      char chh[]={'a','a','a','a','a','\0'};
      4                 printf("%s",chh);*/
      5         //二维数组
      6         //在定义时赋值
      7         int n[3][3]={{1,2,3},{4,5,6},{7,8,9}};
      8         //循环嵌套赋值
      9         for(int i=0;i<3;i++){
     10                 for(int j=0;j<3;j++){
     11                         scanf("%d",&n[i][j]);
     12                 }
     13         }
     14         return 0;
     15 }
     16
    ~       

    展开全文
  • 描述c语言二维数组如何初始化1 有两种方法(1)在定义时可以直接赋值来初始化(2)在定义后可以为其元素一个个来赋值2 示例1234567891011121314151617181920212223242526272829#include《stdio.h》void display(int arr...
  • #include #include#include//二维整型数组打印显示void printarr2d(int (*a)[3],int row,intcol){inti,j;for(i=0; i{for(j=0; j{printf("%d", a[i][j]);}printf("\n");}}main(){int i,j;int a[2][3]={{1,2,3},{4,5,6...
  • C语言二维数组

    2021-05-18 13:12:48
    上节讲解的数组可以看作是一行连续的...本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayNa...
  • 今天使用某个函数,其中的参数是类型为char**, 使用了一个固定的二维数组,将其赋值给予,编译时产生警告;在运行的调用的函数(其中没有任何对字符串内容的修改),打印其中的字符串,直接崩溃。 警告内容:...
  • C语言二维数组的定义和引用C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。下面是小编分享的C语言二维数组的定义与引用,欢迎大家...
  • c语言二维数组如何初始化为0 - 全文

    千次阅读 2021-05-19 18:17:58
    c语言二维数组如何初始化1 有两种方法(1)在定义时可以直接赋值来初始化(2)在定义后可以为其元素一个个来赋值2 示例1234567891011121314151617181920212223242526272829#include《stdio.h》void display(int arr[2]...
  • 在你绞尽脑汁的时候,二维数组(一维数组的大哥)像电视剧里救美的英雄一样显现在你的面前,初识数组的朋友们还等什么呢?让我们认识一下这位武功高强的大哥吧!1. 双下标变量聪明的你一定能够顾名思义了吧,简单举个...
  • C语言二维数组知识点介绍数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍...
  • 不知道行数列数的情况下,给一个二维数组赋值。。。。。。c语言二维数组的赋值: 例1: inta[5][3]={{80,75,92},{61,65,71},{59,63,70},{85,87,90},{76,77,85}}; 例2: #include intmain(){ inti,j;//二维数组下标 ...
  • c语言二维数组如何定义字符串????急。。。二维字符数组的定义格式为:char 数组名[第一维大小][第二维大小]; 例如:char c[3][10]; //定义了一个3行10列的二维字符数组c 由于该二维数组的每一行 c[0]、c[1]、c[2...
  • 复制代码 代码如下:char finalPathSet[256][256];char middlePathSet[256][256];int finalSetSize=0;int middleSetSize=0;int addToPathSet(char path[]){strcpy(middlePathSet[middleSetSize],path);...
  • 二维数组:用于存放一位数组的数组,被称为二维数组。#include //二维数组的长度#define kI 3#define kJ 4/**打印二维数组元素*/void printfArray(int array[][kJ], int x) {for (int i = 0; i < x; i++) {for ...
  • # 1.C语言维数组的定义和引用C语言支持一维数组和多维数组。如果一个数组的所有元素都不是数组,那么该数组称为一维数组。## 一维数组的定义方式在C语言中使用数组必须先进行定义。一维数组的定义方式为:类型说明...
  • 二维数组的定义 二维数组定义的一般形式是: dataType arrayName[length1][length2]; 其中,dataType 为数据类型,arrayName 为数组名,length1 为第一维下标的长度,length2 为第二维下标的长度。 我们可以将二维...
  • 二维数组:char a[2][3];二维数组实质上也就是一维数组,a[2][3]可看做一个2个元素的一维数组,这2个元素又是另一个数组,在内存中,它的排布如下: #include "stdio.h"int main(int argc, char *argv[]){char a[2]...
  • 一、建立二维数组赋值 程序1: #include <stdio.h> int main() { int a[6][6],i,j; //定义一个六行六列的二维数组 for(i=1;i<6;i++) for(j=1;j<6;j++) a[i][j] = (i/j)*(j/i); //对除第一行...
  • 本节学习二维数组二维数组与一维数组相似,但是用法上要比一维数组复杂一点。后面的编程中,二维数组用得很少,因为二维数组的本质就是一维数组,只不过形式上是二维的。能用二维数组解决的问题用一维数组也能解决...
  • 上节讲解的数组可以看作是一行连续的...本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般形式是:dataType arrayName[length1][length2];其中,dataType 为数据类型,arrayNa...
  • 小明在学到二维数组时,尝试写了一段给二维数组赋值的代码,他发现一个奇怪的现象:交换赋值顺序,效率是不同的。交换赋值顺序,效率是不同的请看下面这两段C语言代码:版本 1int test1 (){ int i,j; static int x...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 31,054
精华内容 12,421
关键字:

c语言二维数组的赋值

c语言 订阅
友情链接: call2jmp.zip