C语言小例子
2015-07-17 22:30
381 查看
一、求一个整数的补码,用一个32位的一维数组保存相应位。
示例代码:
二、分别使用访问指针和访问数组的方式计算两个3x3矩阵相乘。
示例代码:
a.访问数组
b.访问指针(1)
b.访问指针(2)
示例代码:
#include<stdio.h> int main() { int i,source; short bits[33] = {0}; printf("input source :\n"); scanf("%d",&source); if(source < 0) { bits[0] = 1; source = - source; source = ~source + 1; } for(i=0; i < 31; i++) { bits[31-i] = (source >> i) & 0x1; } printf("%d buma is :",source); for(i=0; i < 32; i++) { printf("%d",bits[i]); } printf("\n"); return 0; }
二、分别使用访问指针和访问数组的方式计算两个3x3矩阵相乘。
示例代码:
a.访问数组
#include<stdio.h> int main() { int a[3][3]; int b[3][3]; int c[3][3] = {0}; int i,j,k; printf("input matrix a :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&a[i][j]); printf("input matrix b :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&b[i][j]); for(i=0; i < 3; i++) for(j=0; j < 3; j++) for(k=0; k < 3; k++) c[i][j] += a[i][k] * b[k][j]; printf("matrix a x b :\n"); for(i=0; i < 3; i++) { for(j=0; j < 3; j++) printf("%3d ",c[i][j]); printf("\n"); } return 0; }
b.访问指针(1)
#include<stdio.h> int main() { int a[3][3]; int b[3][3]; int c[3][3] = {0}; int i,j,k; printf("input matrix a :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&a[i][j]); printf("input matrix b :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&b[i][j]); for(i=0; i < 3; i++) for(j=0; j < 3; j++) for(k=0; k < 3; k++) *(*(c + i) + j) += (*(*(a + i) + k)) * (*(*(b + k) + j)); printf("matrix a x b :\n"); for(i=0; i < 3; i++) { for(j=0; j < 3; j++) printf("%3d ",c[i][j]); printf("\n"); } return 0; }
b.访问指针(2)
#include<stdio.h> int main() { int a[3][3]; int b[3][3]; int c[3][3] = {0}; int i,j,k; int *pa = a; //这里会报警告,因为a其实指向的是一个一维数组,而pa指向的是int,pb,pc同理。 int *pb = b; int *pc = c; printf("input matrix a :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&a[i][j]); printf("input matrix b :\n"); for(i=0; i < 3; i++) for(j=0; j < 3; j++) scanf("%d",&b[i][j]); for(i=0; i < 3; i++) for(j=0; j < 3; j++) for(k=0; k < 3; k++) *(pc + 3*i + j) += (*(pa + 3*i + k)) * (*(pb + 3*k + j)); printf("matrix a x b :\n"); for(i=0; i < 3; i++) { for(j=0; j < 3; j++) printf("%3d ",c[i][j]); printf("\n"); } return 0; }
相关文章推荐
- C++继承经典例子
- c/c++存储区分配 堆,栈。。。。
- 算法导论 第十五章:动态规划之棒的切割(Rod Cutting)
- C++模板函数初次使用
- 希望获得一个前辈的腾讯2016校园招聘TST内推---- C++研发
- c++ 之自己写库函数 (静态库)
- C/C++数组名与指针区别深入探索
- C语言指针与二维数组
- c++primer之多维数组
- 大一c++程序设计实训 银行储蓄系统
- C++中智能指针的设计和使用
- C++容器
- 黑马程序员-C语言基础知识-函数
- c++三种野指针
- 记C++课程设计--学生信息管理系统
- HDU 1160(我真的不会DP啊啊啊啊)
- C++函数的返回值——返回引用类型&非引用类型
- C语言--程序设计基础——9章
- 【CPP课程实训】-----银行系统
- c++------virtual const static