练习1. 矩阵相乘
#include<iostream>
using namespace std;
int main(void)
{
int n = 2;
int i, j, k;
int a[2][2] = { {1,2},{3,4} };
int b[2][2] = { {1,2},{3,4} };
int c[2][2] = { {0,0},{0,0} };
for (i = 0;i < n;i++) {
for (j = 0;j < n;j++) {
for (k = 0;k < n;k++) {
c[i][j] += a[i][k] * b[k][j];
}
}
}
for (i = 0;i < n;i++) {
for (j = 0;j < n;j++) {
cout << c[i][j] << "\t";
}
cout << "\n";
}
return 0;
}
练习2. 选择排序
#include<stdio.h>
#include<stdlib.h>
void select_sort(int a[], int n)
{
int i, j, k;
for (i = 0;i < n - 1;i++)
{
j = i;
for (k = i + 1; k < n; k++)
{
if (a[k] < a[j])
{
j = k;
}
if (j != i)
{
int tmp = a[i];
a[i] = a[j];
a[j] = tmp;
}
}
}
}
void print_fun(int a[], int n)
{
int m;
for (m = 0; m < n; m++) {
printf("%d ", a[m]);
}
}
int main(void)
{
int a[] = { 2,5,9,3,56,39 };
int n = 6;
select_sort(a, n);
print_fun(a, n);
return 0;
}
练习3. 冒泡排序
#include<stdio.h>
#include<stdlib.h>
#include<stdbool.h>
void bubble_sort(int a[], int n) {
int i, j, tmp;
bool change;
for (i = n - 1, change = true; i > 0 && change; i--)
{
change = false;
for (j = 0; j < i; j++) {
if (a[j] > a[j + 1]) {
tmp = a[j];
a[j] = a[j + 1];
a[j + 1] = tmp;
change = true;
}
}
}
}
void print_fun(int a[], int n) {
int i;
for (i = 0;i < n;i++) {
printf("%d ", a[i]);
}
}
int main(void)
{
int a[] = { 7,3,4,6,8,1 };
int n = 6;
bubble_sort(a, n);
print_fun(a, n);
return 0;
}