第六章:数组

1

多项式加法(5分)

题目内容:

一个多项式可以表达为x的各次幂与系数乘积的和,比如:

现在,你的程序要读入两个多项式,然后输出这两个多项式的和,也就是把对应的幂上的系数相加然后输出。

程序要处理的幂最大为100。

输入格式:

总共要输入两个多项式,每个多项式的输入格式如下:

每行输入两个数字,第一个表示幂次,第二个表示该幂次的系数,所有的系数都是整数。第一行一定是最高幂,最后一行一定是0次幂。

注意第一行和最后一行之间不一定按照幂次降低顺序排列;如果某个幂次的系数为0,就不出现在输入数据中了;0次幂的系数为0时还是会出现在输入数据中。

输出格式:

从最高幂开始依次降到0幂,如:

2x6+3x5+12x3-6x+20

注意其中的x是小写字母x,而且所有的符号之间都没有空格,如果某个幂的系数为0则不需要有那项。

输入样例:

6 2

5 3

3 12

1 6

0 20

6 2

5 3

2 12

1 6

0 20

输出样例:

4x6+6x5+12x3+12x2+12x+40

时间限制:500ms内存限制:32000kb

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>

int main(int argc, const char * argv[]) {
    int exponent, ratio;
    int arr1[101] = {0};
    int arr2[101] = {0};

    do{
        scanf("%d %d", &exponent, &ratio);
        arr1[exponent] = ratio;
    }while(exponent!=0);

    do{
        scanf("%d %d", &exponent, &ratio);
        arr2[exponent] = ratio;
    }while(exponent!=0);
    int flag = 0;
    for(int i=100;i>=0;i--){
        if (arr1[i]!=0 || arr2[i]!=0){
            int ratio = arr1[i] + arr2[i];
            if(ratio!=0){
                if(flag == 1){
                    printf("+");
                }else{
                    flag = 1;
                }

                if(i==0){
                    printf("%d",ratio);
                }else if(i==1){
                    printf("%dx",ratio);
                }else{
                    printf("%dx%d",ratio,i);
                }
            }

        }
    }
    printf("\n");
}

  

2

鞍点(5分)

题目内容:

给定一个n*n矩阵A。矩阵A的鞍点是一个位置(i,j),在该位置上的元素是第i行上的最大数,第j列上的最小数。一个矩阵A也可能没有鞍点。

你的任务是找出A的鞍点。

输入格式:

输入的第1行是一个正整数n, (1<=n<=100),然后有n行,每一行有n个整数,同一行上两个整数之间有一个或多个空格。

输出格式:

对输入的矩阵,如果找到鞍点,就输出其下标。下标为两个数字,第一个数字是行号,第二个数字是列号,均从0开始计数。

如果找不到,就输出

NO

题目所给的数据保证了不会出现多个鞍点。

输入样例:

4

1 7 4 1

4 8 3 6

1 6 1 2

0 7 8 9

输出样例:

2 1

时间限制:500ms内存限制:32000kb

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdbool.h>

int main(int argc, const char * argv[]) {
    int count;
    scanf("%d", &count);
    int index = 0;
    int arr[count][count];
    do{
        int i = 0;
        while(i<count){
            scanf("%d", &arr[index][i]);
            i++;
        }
        index = index +1;
    }while(index<count);

    for(int row = 0;row<count;row++){
        int target = arr[row][0];
        for(int col = 1;col<count;col++){
            if(target<arr[row][col]){
                target = arr[row][col];
            }
        }

        for(int col = 0;col<count;col++){
            if(target == arr[row][col]){
                bool find = true;
                int xrow = 0;
                for (xrow = 0;xrow<count;xrow++){
                    if(arr[xrow][col]<target){
                        find = false;
                        break;
                    }
                }
                if(!find){
                    break;
                }else{
                    printf("%d %d\n",row,col);
                    return 0;
                }
            }
        }
    }
    printf("NO\n");
    return 0;
}

  

时间: 2024-11-08 19:13:27

第六章:数组的相关文章

语法》第六章 数组

(本文为阮一峰js标准教程的学习笔记,旨在总结该教程中涉及的知识点大纲及个人所做的一些拓展,方便作为"目录"或者"大纲"复习和查漏补缺,详细内容请参见阮一峰教程原文) 第二部分 语法 *********第六章 数组*********** 一.数组的定义1.概念:按次序排列的一组数,每个值都有编号(从0开始)整个数组用[]表示2.可以定义时赋值,也可定以后赋值.arr[0]='a';3.任何数据类型都可放入数组,[1,'1',[1,2],{},function(){}

【读书笔记】C#高级编程 第六章 数组

(一)同一类型和不同类型的多个对象 如果需要使用同一类型的多个对象,就可以使用数组或集合(后面章讲). 如果需要使用不同类型的多个对象,可以使用Tuple(元组)类型. (二)简单数组 如果需要使用同一类型的多个对象,可以使用数组.数组是一种结构,它可以包含同一类型的多个元素. 1.数组的声明 在声明数组时,应先定义数组总元素的类型,其后是一堆空方括号和一个变量名. 例子: 以下代码声明了一个包含整形类型的数组 int[] intArray; 2.数组的初始化 声明了数组后,就必须为数组分配内存

《JAVA编程思想》学习笔记——第十六章 数组

数组和其它种类的容器之间的区别有三方面:效率,类型和保存基本类型的能力.在Java中,数组是一种效率最高的存储和随机访问对象引用序列的方式.数组就是一个简单的线性序列,这使得元素访问非常快速.但是为这种速度所付出的代价是数组对象的大小被固定,并且在其生命周期中不可改变. 数组强调的是性能而不是灵活性 对象数组和基本类型数组在使用上几乎是相同的; 唯一的区别就是对象数组保存的是引用,基本类型数组直接保存基本类型的值. Arrays实用功能 System.arraycopy():复制数组 equal

第六章 数组

1. 数组:是一个变量,存储相同数据类型的一组数据. 2. 数组的优点:减少代码量,易查找. 3. 使用数组的步骤: 1)声明数组:例:int[] a; 语法: 数据类型  数组名[]; 数据类型[] 数组名; 2)分配数组内存空间:例:a=new int[5]; 语法: 数组名=new  数据类型[大小]; 3)给数组元素赋值:例:a[0]=80; 4. 数组的三种声明方式: 1)int num[]=new int[]{1,2,3}; 2)int[] num=new int[长度]; 3)in

第六章 数组名与指针

指针的算术运算符是指针和数组之间的一种关联,但不是唯一关联: 可以使用数组名作为指向数组第一个元素的指针,但是不可以给数组名赋新的值. //如下声明a int a[10]; //用a作为指向数组第一个元素的指针,可以修改a[0]; *a = 11; //通过a + 1来访问a[1]; *(a + 1) = 22; 但是试图使数组名指向其他地方是错误的: #include <stdio.h> int main() { char arr[] = "yangxunwu"; whi

第六章 数组与结构

数组 数组是类型相同  数目相同的若干变量大的有序集合 一.一维数组 1.格式: 类型说明符   数组名 [常量表达式] 例如:   int arr[1,2,3,4,5, 6] 格式说明:(1)数组中的每一个变量称为数组元素 (2)数组在内存中存储是占一段连续的存储空间 (3)一个数组名只能在程序中说明一次, (4)常量表达式可以是整数常量.符号常量或常量表达式,  不能包含变量,  其值必须是正整数 2.一维数组在内存中的存储 数组定义以后,  编译器就会为这个数组在内存中分配一串连续的存储单

第六章 数组和索引器 (6.6 索引器)

[案例]本案例在Student类中定义索引器,然后通过stu[i] 来引用Student类的对象实例. [案例目的](1)掌握索引器定义与使用. (2)理解索引器与属性的区别. [代码] namespace Example1 { class Program { static void Main(string[] args) { Student stu = new Student();//stu是Student类的对象名 stu.Sno = "1840"; stu.Name = &quo

第六章 Shell数组应用

目录 第六章 Shell数组应用 1. 数组基本概述 2. 数组基本使用 3. 数组遍历与循环 第六章 Shell数组应用 1. 数组基本概述 01. 什么是数组? 数组其实也算是变量,传统的变量只能存储一个值,但数组可以存储多个值. 02. 数组的分类 Shell数组分为普通数组和关联数组.普通数组:只能使用整数作为数组索引.关联数组:可以使用字符串作为数组索引. 2. 数组基本使用 01. 普通数组仅能使用整数来作为索引 #普通数组赋值方式 1.方式一:针对每个索引进行赋值 [[email 

ASP.NET MVC with Entity Framework and CSS一书翻译系列文章之第六章:管理产品图片:多对多关系(上)

这章介绍了怎样创建一个新的实体来管理图片,怎样使用HTML窗体来上传图片文件和使用多对多关系来使它们与产品相关,并且怎样来保存图片到文件系统中.这章也介绍了更多复杂的错误处理增加客户端错误到模型中为了把它们显示回给用户.在这章中播种数据库使用的产品图片可能在在第六章的从Apress网页站点下载代码中. 注意:如果你想遵从这章的代码,你必须完成第五章的代码或者从www.apress.com下载第五章的源代码作为一个起点. 创建实体保存图片文件名 这个项目,我们正要使用文件系统在Web项目中存储图片

C Primer Plus (第五版) 第十六章 C预处理器和C库 编程练习

第十六章 C预处理器和C库 开发一个包含您需要使用的预处理器定义的头文件 //max.h  #ifndef _MAX_H_     #define _MAX_H_     #define MAX(X, Y) ((X)>(Y)?(X):(Y)) #endif 2.两个数的调和平均数可用如下方法得到:首先对两数的倒数取平均值,最后再取倒数.使用#define指令定义一个宏"函数"执行这个运算.编写一个简单的程序测试该宏. #include <stdio.h> #defin