练习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 ;
}