C和指针 (pointers on C)——第八章:数组(下)习题

本章习题很经典:

3-4判断单位矩阵

5、矩阵乘法

8、八皇后问题

其中八皇后问题我感觉存在问题,回溯法我运用的不好就先不挂了。

题目请见 http://download.csdn.net/download/wangpegasus/5701765

3、

bool identity_matrix(int matrix[10][10])
{
	int length = 10;
	for (int i = 0; i < length; i++)
	{
		for (int j = 0; j < length; j++)
		{
			if (i==j)
			{
				if (matrix[i][j] != 1)
				{
					return false;
				}
				else
				{
					continue;
				}
			}
			else
			{
				if(matrix[i][j] != 0)
				{
					return false;
				}
				else
				{
					continue;
				}
			}
		}
	}
}

4、

bool identity_matrix(int *matrix, int n)
{
	int length = n;
	for (int i = 0; i < length; i++)
	{
		for (int j = 0; j < length; j++)
		{
			if (i==j)
			{
				if (*matrix++ != 1)
				{

					return false;
				}
				else
				{
					continue;
				}
			}
			else
			{
				if(*matrix++ != 0)
				{
					return false;
				}
				else
				{
					continue;
				}
			}
		}
	}
}

5、

void matrix_multiply(int *m1, int *m2, int *r, int x, int y, int z)
{
	for(int i = 0; i < x; i++)
	{
		for (int j = 0; j < y; j++)
		{
			for (int k = 0; k < z; k++)
			{
				*(r + i + i*k) += *(m1 + i + i*j) * (*(m2 + j + j*k));
			}
		}
	}
}
时间: 2024-08-12 10:22:36

C和指针 (pointers on C)——第八章:数组(下)习题的相关文章

C语言学习书籍推荐《C和指针 Pointers On C》下载

<C和指针 POINTERS ON C>提供与C语言编程相关的全面资源和深入讨论.本书通过对指针的基础知识和高 级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去.  全书共18章,覆盖了数据.语句.操作符和表达式.指针.函数.数组.字符串.结构和联合等几乎所有重要的C编程话题.书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答.  本书适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考. 下载地址:点我 编辑推荐 本书通

Java学习笔记—第八章 数组

第八章  数组 定义:在Java中,数组是具有相同数据类型的有序数据的集合,它是一个对象.数组中的每个数据称为数组元素,通过下标访问.数组分为一维数组和多维数组. 一维数组的声明:声明一个数组仅指定了数组名和元素的数据类型,并未指定数组元素的个数和初始值,此时系统不会为数组分配内存空间.一维数组的声明格式如下: 数据类型[] 数组名;  或者  数据类型 数组名[]; 一维数组的初始化:数组声明后需要初始化才可以使用,通过初始化可以为数组分配内存空间,或者为数组元素赋值.数组的初始化分为静态初始

C#编程(七十六)----------使用指针实现基于栈的高性能数组

使用指针实现基于栈的高性能数组 以一个案例为主来分析实现方法: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace 基于堆栈的数组 { class Program { static void Main(string[] args) { int[] i = new int[10]; Console.W

第八章 数组

8.1 数组名和指针 int a; int b[10]; a称为一个标量,表示一个单一的值,变量的类型是整数. b是数组,b[1]的类型是整数,b是一个指针常量,表示数组第一个元素的地址.b的类型取决于数组的类型,在这里b是指向int的常量指针,如果是其他类型的数组,那么就是指向其他类型的指针常量. 但是数组和指针并不相同,数组是有确定数量的元素,而指针只是一个标量,编译器有数组名来记住这些属性,当数组名在表达式中使用时,编译器才会为他产生一个指针常量.数组名是指针常量,所以是不可以修改的,他指

读陈浩的《C语言结构体里的成员数组和指针》总结,零长度数组

原文链接:C语言结构体里的成员数组和指针 复制如下: 单看这文章的标题,你可能会觉得好像没什么意思.你先别下这个结论,相信这篇文章会对你理解C语言有帮助.这篇文章产生的背景是在微博上,看到@Laruence同学出了一个关于C语言的题,微博链接.微博截图如下.我觉得好多人对这段代码的理解还不够深入,所以写下了这篇文章. 为了方便你把代码copy过去编译和调试,我把代码列在下面: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include <stdio.h>

C中怎么利用指针实现一个函数输入一个数组且输出一个数组

1 #include<stdio.h> 2 3 int num[]={1,3,5,45,67,18,64,82,34,62}; 4 5 int *pnum; 6 7 int *Fun(int *num);//该函数可以实现输入一个数组且输出一个数组的功能 8 9 void main() 10 { 11 char i=0; 12 //num=Fun(num);//这样写是错误的,因为num是一个指针常量,不能被赋值 13 pnum=Fun(num); 14 for(i=0;i<10;i++

指针、函数、二维数组之间的联系

1.传递数组指针 1 #include <stdio.h> 2 void output( int (*pa)[3], int n )//这个函数只能输出n行3列的二维数组 3 { 4 int i,j; 5 for( i=0;i<n;i++ ){ 6 for( j=0;j<3;j++ ) 7 printf("%d ", pa[i][j] ); 8 printf("\n"); 9 } 10 } 11 void main() 12 { 13 int

你必须知道的指针基础-2.指针的声明和使用及数组和指针的关系

一.计算机知道数据类型吗? 1.1 神奇的数据类型 At first,计算机中绝大部分数据都放到内存中的,不同的数据放到不同的内存区域中.But,内存角度没有数据类型,只有二进制:数据以字节(8位二进制)为单位存取.不同数据类型占据不同的字节,例如在32位系统中:int 为4个字节,short为2个字节(下面如未特殊声明,均为32为系统环境下的说明).下面我们看看int类型.short类型和double类型的数字分别在内存中如何存储: ①int类型:99999 由于int类型占4个字节,每个字节

c语言之使用指针*和地址&amp;在二维数组中表示的含义

假设有这么一个数组:int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,23}} 表示形式 含义 地址 a 二维数组名,指向一维数组a[0],即0行的首地址 假设首地址为2000 a[0], *(a+0) *a 0行0列元素地址 2000 a+1,&a[1] 第一行首地址 2016 a[1],*(a+1) 1行0列元素a[1][0]的地址 2016 a[1]+2 *(a+1)+2 &a[1][2] 1行2列元素a[1][2]的地址 2024 *(

三指针(三指针排序只有三种元素的数组)--12--三指针--颜色分类

颜色分类 给定一个包含红色.白色和蓝色,一共 n 个元素的数组,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色.白色.蓝色顺序排列. 此题中,我们使用整数 0. 1 和 2 分别表示红色.白色和蓝色. 注意:不能使用代码库中的排序函数来解决这道题. 示例: 输入: [2,0,2,1,1,0]输出: [0,0,1,1,2,2] 题目来源:力扣(LeetCode)题目链接:https://leetcode-cn.com/problems/sort-colors 分析 题目可通过快排.三指针,