精华内容
下载资源
问答
  • 直接读取1.读取至a[0]和b[0],与'D'和'C'比较,就可以判断是借还是贷2.接着读取a[2] a[3] a[4] a[5] b[2] b[3] ...3.接着下面就是temp1+temp2了下面给出一程序:1.至于D还是C是借或贷,还有借贷怎么加减,你就自己...

    59216f70cd197199f6d91fdc5da42dd7.png

    直接读取

    1.读取至a[0]和b[0],与'D'和'C'比较,就可以判断是借还是贷

    2.接着读取a[2] a[3] a[4] a[5] b[2] b[3] b[4] b[5]

    并强制转换为int型

    然后可以这样

    int temp1 = a[2]*1000+a[3]*100+a[4]*10+a[5];

    3.接着下面就是

    temp1+temp2了

    下面给出一个程序:

    1.至于D还是C是借或贷,还有借贷怎么加减,你就自己处理了

    2.你可以做一些小的修改就可以满足你想要的了,程序很简单,看不懂可以给我信息;

    #include "stdio.h"

    #include "stdlib.h"

    int main()

    {

    char a[6] = "D1012";

    char b[6] = "C0258";

    //打印借贷,这段你自己修改,这里告诉你如何比较

    if (a[0] =='D')

    {

    printf("a借贷\n");

    }

    if (b[0]=='D')

    {

    printf("b借贷\n");

    }

    int s,s1,s2;

    s1 =atoi(a+1);//从a[1]开始转换

    printf("a = %d\n",s1);

    s2 =atoi(b+1);//从b[1]开始转换

    printf("b = %d\n",s2);

    s = s1 + s2;//s保存a+b的值

    printf("a+b = %d\n",s);

    return 0;

    }

    ◆◆

    评论读取中....

    请登录后再发表评论!

    ◆◆

    修改失败,请稍后尝试

    展开全文
  • 在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。二维数组的定义二维数组定义的一般...

    上节讲解的数组可以看作是一行连续的数据,只有一个下标,称为一维数组。在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多个下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。

    二维数组的定义

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

    dataType arrayName[length1][length2];

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

    我们可以将二维数组看做一个 Excel 表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列。例如:

    int a[3][4];

    定义了一个 3 行 4 列的二维数组,共有 3×4=12 个元素,数组名为 a,即:

    a[0][0], a[0][1], a[0][2], a[0][3]

    a[1][0], a[1][1], a[1][2], a[1][3]

    a[2][0], a[2][1], a[2][2], a[2][3]

    如果想表示第 2 行第 1 列的元素,应该写作 a[2][1]。

    也可以将二维数组看成一个坐标系,有 x 轴和 y 轴,要想在一个平面中确定一个点,必须同时知道 x 轴和 y 轴。

    二维数组在概念上是二维的,但在内存中是连续存放的;换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙。那么,如何在线性内存中存放二维数组呢?有两种方式:

    一种是按行排列, 即放完一行之后再放入第二行;

    另一种是按列排列, 即放完一列之后再放入第二列。

    在C语言中,二维数组是按行排列的。也就是先存放 a[0] 行,再存放 a[1] 行,最后存放 a[2] 行;每行中的 4 个元素也是依次存放。数组 a 为 int 类型,每个元素占用 4 个字节,整个数组共占用 4×(3×4)=48 个字节。

    你可以这样认为,二维数组是由多个长度相同的一维数组构成的。

    【实例1】一个学习小组有 5 个人,每个人有 3 门课程的考试成绩,求该小组各科的平均分和总平均分。

    --

    Math

    C

    English

    张涛

    80

    75

    92

    王正华

    61

    65

    71

    李丽丽

    59

    63

    70

    赵圈圈

    85

    87

    90

    周梦真

    76

    77

    85

    对于该题目,可以定义一个二维数组 a[5][3] 存放 5 个人 3 门课的成绩,定义一个一维数组 v[3] 存放各科平均分,再定义一个变量 average 存放总平均分。最终编程如下:

    #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;

    }

    运行结果:

    Input score:

    80 61 59 85 76 75 65 63 87 77 92 71 70 90 85↙

    Math: 72

    C Languag: 73

    English: 81

    Total: 75

    程序使用了一个嵌套循环来读取所有学生所有科目的成绩。在内层循环中依次读入某一门课程的各个学生的成绩,并把这些成绩累加起来,退出内层循环(进入外层循环)后再把该累加成绩除以 5 送入 v[i] 中,这就是该门课程的平均分。外层循环共循环三次,分别求出三门课各自的平均成绩并存放在数组 v 中。所有循环结束后,把 v[0]、v[1]、v[2] 相加除以 3 就可以得到总平均分。

    二维数组的初始化

    二维数组的初始化可以按行分段赋值,也可按行连续赋值。

    例如,对于数组 a[5][3],按行分段赋值应该写作:

    int a[5][3]={ {80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85} };

    按行连续赋值应该写作:

    int a[5][3]={80, 75, 92, 61, 65, 71, 59, 63, 70, 85, 87, 90, 76, 77, 85};

    这两种赋初值的结果是完全相同的。

    【实例2】和“实例1”类似,依然求各科的平均分和总平均分,不过本例要求在初始化数组的时候直接给出成绩。

    #include

    int main(){

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

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

    int average; //总平均分

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

    int a[5][3] = {{80,75,92}, {61,65,71}, {59,63,70}, {85,87,90}, {76,77,85}};

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

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

    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;

    }

    运行结果:

    Math: 72

    C Languag: 73

    English: 81

    Total: 75

    对于二维数组的初始化还要注意以下几点:

    1) 可以只对部分元素赋值,未赋值的元素自动取“零”值。例如:

    int a[3][3] = {{1}, {2}, {3}};

    是对每一行的第一列元素赋值,未赋值的元素的值为 0。赋值后各元素的值为:

    1  0  0

    2  0  0

    3  0  0

    再如:

    int a[3][3] = {{0,1}, {0,0,2}, {3}};

    赋值后各元素的值为:

    0  1  0

    0  0  2

    3  0  0

    2) 如果对全部元素赋值,那么第一维的长度可以不给出。例如:

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

    可以写为:

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

    3) 二维数组可以看作是由一维数组嵌套而成的;如果一个数组的每个元素又是一个数组,那么它就是二维数组。当然,前提是各个元素的类型必须相同。根据这样的分析,一个二维数组也可以分解为多个一维数组,C语言允许这种分解。

    例如,二维数组a[3][4]可分解为三个一维数组,它们的数组名分别为 a[0]、a[1]、a[2]。

    这三个一维数组可以直接拿来使用。这三个一维数组都有 4 个元素,比如,一维数组 a[0] 的元素为 a[0][0]、a[0][1]、a[0][2]、a[0][3]。

    展开全文
  • C语言实现两个超大数组相加

    千次阅读 2018-03-29 00:19:41
    //任意两个一百位以上的整数相加;//用字符串存储,数组输入相加后的和并输出;//由于不知道相加后的结果,而且数组没办法提前知道所得结果的长度,所以需要将数组设置的尽量大;#include&lt;stdio.h&gt; #...
    //任意两个一百位以上的整数相加;

    //用字符串存储,数组输入相加后的和并输出;

    //由于不知道相加后的结果,而且数组没办法提前知道所得结果的长度,所以需要将数组设置的尽量大;

    #include<stdio.h>
    #include<string.h>
    #define N 200     //设定存储相加之和的数组大小;
    int main(void)
    {
    	char s1[100],s2[100],*s=s1;    //注意这里的指针s指向字符数组s1上;
    	int R[N],cp=0;
    	//输入两个字符串;
    	printf("输入第一个字符串:");
    	gets(s1);
    	printf("输入第二个字符串:");
    	gets(s2);
    	//初始化,因为数学运算相加需要从各位开始,所以刚开始两个数组的数字要从最后一位开始;
    	int i=strlen(s1)-1;
    	int j=strlen(s2)-1;
    	int k=N-1;    //相加后的结果也要从 最后一位开始存储到数组中;
    	//计算;
    	while(i>-1&&j>-1)  //两个字符串都没有完;
    	{
    
                      //因为字符型数字的转换成整型需要减去这个字符型数字的ASCII码;
    
                      //cp表示进位的数字,刚开始cp=0;
    
    		int x=s1[i--]-'0'+s2[j--]-'0'+cp; 
    		R[k--]=x%10;
    		cp=x/10;
    	}
    	if(j>-1)   //如果s2没完,将本来指向s的指针指向s2;
    	{
    		i=j;
    		s=s2;
    	}
    	while(i>-1)  //由上个if判断s1和s2那个没完,将剩下的数字按照位输入到整形数组R中;
    
    	{
    		int x=s[i--]-'0'+cp;    //此时的cp表示上面的循环中可能还有进位,所以这里的cp不需要清空;
    		R[k--]=x%10;
    		cp=x/10;
    	}
    	if(cp)  //*重要*   判断最高位是否需要进位;
    		R[k--]=cp;
    	//输出;
    	printf("\n两个字符串相加后的存储结果为:\n");
    	for(i=k+1;i<N;i++)
    		printf("%d",R[i]);
    	printf("\n");
    	return 0;
    }

    //结果: 举例:   s1     123456789

                               s2      987654321


    //不懂的可以留言,希望能帮到你,看到留言我会回复;

    展开全文
  • 1.编写程序,把下面的数据输入到一二维数组中: 25 36 78 13 12 26 8我自己编的,用VISUAL C++6.0 测试过了 #include"stdio.h" void Print(int a[4][4]) { int i,j; for(i=0;i输入4行4列的二维数组,CSS布局HTML小...

    1.编写程序,把下面的数据输入到一个二维数组中: 25 36 78 13 12 26 8我自己编的,用VISUAL C++6.0 测试过了 #include"stdio.h" void Print(int a[4][4]) { int i,j; for(i=0;i

    输入4行4列的二维数组,CSS布局HTML小编今天和大家分享计算主对角线各元素之和,2 3 5 8 1 0 1 2 4 5 7 6 1 0 2 3 i=0 to 3 j=0 to 3 if(i==j) sum=su#include int main(void) { int a[4][4]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,sum1,sum2;//定义sum1,sum2,分别存放两条对线元素的和; sum1=sum2=0; for(i=0;i

    C语言编程题:定义一个5╳5的矩阵,CSS布局HTML小编今天和大家分享对角线上的元要CSS布局HTML小编今天和大家分享:1)5╳5的矩阵是一个整型二维数组。 2)对角线上交叉的元素只加一次。

    ee4e4073169634d2e069433b6231ec85.png

    #include #include #include void main() { int a[4][4],i,j,s1=0,s2=0,sum=0; srand(time(NULL));//生成随机种子 for(i=0;i

    CSS布局HTML小编今天和大家分享一个5行5列的整型二维数组对角线元素之和(数组#include int main() { int i,j,sum=0; int arr[5][5]; printf("请输入数组元素的值:\n"); for(i=0;i

    CSS布局HTML小编今天和大家分享二维数组对角线之和的C++程序。

    用C++编一个程序,要CSS布局HTML小编今天和大家分享输入一个4*4矩阵对角线之和,并CSS布局HTML小编今天和大家分享其最大最小值,简述思路吧 定义一个存放最大值的变量max 定义一个存放最小值的变量Min 定义一个存放对角线之和变量sum 遍历二维数组所有元素 for(i=0;i

    c语言 二维数组 对角线相加

    通过java语言编程实现输出二维数组主对角线上的最大值

    import java.util.Scanner;public class max { public static void main(String[] args) { Scanner stdIn = new Scanner(System.in); int rows, cols; // 行数与列数 System.out.print("Enter number of rows" + " for the matrix: "); rows = s

    输出二维数组主对角线上元素中, if(i == j) prin很简单,就是在主对角线的下标都相等的时候,肯定就是主对角线上的元素了,判断对了,就输出来了啊,。

    c语言中如何输出二维数组a[5][5]的对角线元素

    /* * Date: 2015/12/18 */#include #include int main(int argc, char *argv[]){ int a[5][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11,12,13,14,15}, {16,17,18,19,20}, {21,22,23,24,25} }; int i; for ( i = 0; i < 5; i++ ) { printf("%

    展开全文
  • 程序内容: 把两个数组中相对应的元素相加,然后把结果储存到第3个数组中。也就是说,如果数组1中包含的值是2、4、5、8,数组2包含的值是1、0、4、6,那么该函数把3、4、9、14赋给第三个数组 程序为C Primer Plus...
  • C语言二维数组知识点介绍数组可以看作是一行连续的数据,只有一下标,称为一维数组。在实际问题中有很多量是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多下标,以确定它在数组中的位置。本节只介绍...
  • 指针在处理数组时很有用,我们可以用指针指向已有的数组,也可以从堆上分配内存然后把这块内存当做一个数组使用。数组表示法和指针表示法在某种意义上可以互换。不过,它们并不完全相同,后面的“数组和指针的差别”...
  • 指向同一数组两个指针变量 相减 表示 相差元素个数,可以 比较 地址编号大小,两个指针变量不能相加 指针变量加一个数表示 跳过(指针变量类型的字节数)*(这个数)的字节数 数组名[ 不越界的情况下可以为复负数 ],...
  • 数组中找出相加之和等于某个特定值的两个数:方法1,两次循环;方法二,一次循环'''Find out two numbers from num which add up to 'target''''def solution(nums, target):if len(nums) < 2:returnelse:for i...
  • 数组就是数组,其大小与元素的类型和数有关。定义数组时必须指定其元素的类型和数。数组可以存任何类型的数据,但不能存函数。一、以指针的形式访问和以下标的形式访问下面我们就详细讨论讨论它们之间似是而...
  • c语言基础之数组

    2019-04-28 20:49:34
    c语言的实际应用中,我们常常需要同时对多数据进行处理,如果没有专门批量处理数据的方法,就会给我们的程序编写造成巨大的影响。而这种批量处理数据的方法就是我们这次的主题——数组。 在c语言中,数组是用来...
  • C语言指针和数组

    2019-10-07 17:46:30
    C语言指针和数组binsearch else-if shellsort insertsort 指针和地址 指针是编程语言中的一类数据类型及其对象或变量,用来表示或存储一内存地址,这地址的值直接指向(points to)存在该地址的对象的值。 ...
  • 关于C语言中的数组

    2018-04-12 21:01:19
    如果一个数组的所有元素都不是数组,那么该数组称为一维数组。一维数组的定义方式在C语言中使用数组必须先进行定义。一维数组的定义方式为: 类型说明符 数组名 [常量表达式];其中,类型说明符是任一种基本数据类型...
  • C语言 二维数组

    千次阅读 2016-01-15 22:21:24
    # 二维数组基本概念 ##1.二维数组的基本概念 - 所谓多维数组就是一个一... +可以看作由一维数组a[0]和一维数组a[1]组成,这两个一维数组都包含了3个int类型的元素 ##2.二维数组的定义 - 格式:  +数据类型 数组名[一维
  • C语言二维数组

    2018-03-09 11:50:00
    在实际问题中有很多数据是二维的或多维的,因此C语言允许构造多维数组。多维数组元素有多下标,以确定它在数组中的位置。本节只介绍二维数组,多维数组可由二维数组类推而得到。 二维数组的定义 二维数组定义的...
  • 通过这道题,你可以掌握如何根据用户输入创建数组如何在一连串数字中找到和最大的某一段连续数字子串如何发现问题的潜在规律并利用这规律设计算法,解决问题 思路连续数相加要最大,说明左右两边的数肯定不是负数...
  • C语言指针与数组总结

    2019-08-21 18:05:48
    指针与数组本是两个互不相干的概念。但是在C语言中,指针和数组却有着一些奇怪的关系,让我们这些初学者非常的头疼。 首先,指针是一种变量类型,它一般包含两个属性: 指向的变量的地址 该变量所占的空间大小。 ...
  • C语言--数组小记

    千次阅读 2014-11-27 16:53:05
    数组小记 1.数组定义 数组属于构造类型:有无数基本数据类型组成,这些基本数据类型称为数组的元素。 2.数组特点 只能存放一种类型的数据,比如int类型的数组、float类型的数组 ...C语言数组
  • c语言-指针数组

    千次阅读 2018-11-10 22:53:05
    机器中有一些位置,每一位置被称为【字节】/byte,许多现代机器上,每字节包含8位。更大内存单位【字】,通常包含2或4字节组成。 一字包含4字节,它的地址是什么? 他仍然只有一地址,是最左边还是...
  • C语言学习—数组

    2017-10-20 13:23:41
    Q1:当数组出现在一表达式中时,它和指向数组中的第一元素的指针是等价的。但要注意头文件与源文件要进行相应的定义。例如:假如在源文件里进行如下定义:char a[max]; 但是在头文件中说明如下:extern char *a; ...
  • C语言回顾 四 数组

    2015-10-14 12:58:56
    数组的每个成员成为一个数组元素。 最简单的数组是:一位数组。 一维数组的定义: 类型说明符 数组名【常量表达式】 = {值1,值2......}; 在数组之中,有一些问题需要注意: a.数组越界,很危险 b.数组元素个数可以...
  • C语言指针和数组详讲

    2020-08-23 18:36:14
    在c中,在几乎所有使用数组名的表达式中,数组名的值是一指针常量,也就是数组第1元素的地址(要注意数组名在这里指的是一地址)。它的类型取决于数组元素的类型:如果它们是int类型, 那么数组名的类型就是...
  • 编程代码如下://文件后缀名为....#define NUM 20 //求和数据数的最大值int main(){int i,n;int sum=0;int a[NUM];cout<cin>>n;cout<for(i=0;i{cin>>a[i];//输入数据sum+=a[i];//求和}cout<r...
  • C语言 指针与数组,结构体

    千次阅读 2016-01-16 20:02:31
     +一个变量有地址,一个数组包含若干元素,每个数组元素都有相应的地址指针变量可以指向数组元素(把某一元素的地址放到一个指针变量中) 所谓数组元素的指针就是数组元素的地址  printf(“%p %p”, &(a[0]), a); 输出...
  • C语言基础之数组

    2015-07-13 20:02:42
    数组的每个成员称为一个数组元素. 3.最简单的数组是一维数组.数组由相同数据类型 组成的一组有序的数据 4.一维数组的定义: 类型说明符 数组名[常量表达式] ={值1,值2...}; 数组定义时,赋值个数 int a[5] = {2,...
  • C语言编程——数组排序

    千次阅读 2013-11-02 15:07:09
    给定一个包含1-n的数列,我们通过交换任意两个元素给数列重新排序。求最少需要多少次交换,能把数组排成按1-n递增的顺序,其中,数组长度不超过100。 例如:  原数组是3,2,1, 我们只需要交换1和3就行了,交换次数...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 16,296
精华内容 6,518
关键字:

c语言两个数组相加

c语言 订阅