int A[4];
A[0] at 100
A[1] at 104
A[2] at 108
A[3] at 112
A[10]
*(A + 10)
memory location 100 + (10 * sizeof int)
void foo(int p[])
{
for (int i = 0; i < 4; i++)
cout << *(p+i);
}
int * bar(int p[])
{
int B[5] = {5, 4, 3, 1, 6};
B[3] = 7;
return p;
}
main()
{
int A[4];
for (int i = 0; i < 4; i++)
cout << A[i] << " ";
for (int i = 0; i < 4; i++)
cout << *(A+i) << " ";
cout << endl;
foo(A);
int *q = bar(A);
}
template <typename T>
void swap2(T &a, T &b)
{
T temp = a;
a = b;
b = temp;
}
// recursive bubblesort
void bubbleSort(int a[], int capacity)
{
if (capacity == 1)
return;
// do one sweep
for(int i = 0; i < capacity; i++)
if (a[i] > a[i+1])
swap(a[i], a[i+1])
bubbleSort(a, capacity - 1);
}
// dfgdfdfg.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
// within iostream
// istream cin;
// ostream cout;
using namespace std;
bool aComposite[1024] = { true, true };
bool isPrime(int n)
{
return ! aComposite[n];
}
void setupLookupTable()
{
for (int i = 2; i < 1024; i++)
{
// is this number i am visiting
// already marked off as composite
if (aComposite[i] == false)
for (int j=i+i; j < 1024; j+=i)
aComposite[j] = true;
}
}
void print(const int a[], int capacity)
{
for (int i = 0; i < capacity; i++)
cout << a[i] << ' ';
cout << endl;
}
void add(const int a[], const int b[], int c[], int capacity)
{
for (int i = 0; i < capacity; i++)
c[i] = a[i] + b[i];
}
void add(const int a[][3], const int b[][3], int c[][3], int rows, int cols)
{
for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++)
c[i][j] = a[i][j] + b[i][j];
}
void print(const int C[][3], int rows, int cols)
{
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
cout << "[" << setw(3) << C[i][j] << "]";
cout << endl;
}
}
template <int rows, int cols>
int dotProduct(int (&A)[rows][cols],
int (&B)[rows][cols],
const int row, const int col)
{
int total = 0;
for (int i = 0; i < 3; i++)
total += A[row][i] * B[i][col];
return total;
}
template <int rows, int cols>
void mmult(int (&A)[rows][cols], int (&B)[rows][cols], int (&C)[rows][cols])
{
for (int i = 0; i < rows; i++)
for (int j = 0; j < cols; j++)
C[i][j] = dotProduct(A, B, i, j);
}
int minimumValue(const int a[], const int capacity)
{
int minValue = a[0];
for (int i = 1; i < capacity; i++)
if (a[i] < minValue)
minValue = a[i];
return minValue;
}
int minimumPosition(const int a[], const int startPos, const int capacity)
{
int minPos = startPos;
for (int i = startPos + 1; i < capacity; i++)
if (a[i] < a[minPos])
minPos = i;
return minPos;
}
int selectionSort(int A[], int capacity)
{
for (int i = 0; i < capacity; i++)
{
int minPos = minimumPosition(A, i, capacity);
swap(A[i], A[minPos];
}
}
void subtract(const int a[], const int b[], int c[], int capacity)
{
for (int i = 0; i < capacity; i++)
c[i] = a[i] - b[i];
}
void mult(const int a[], int scalar, int b[], int capacity)
{
for (int i = 0; i < capacity; i++)
b[i] = a[i] * scalar;
}
int foo(int *a)
{
return 0;
}
template <typename T, typename S>
void swap2(T &a, S &b)
{
T temp = a;
a = b;
b = temp;
}
int main() {
int A[3][3], B[4][3];
dotProduct(A, B, 2, 1);
// int first = 2;
// float second = 3;
// swap2<int, int>(first, second);
// cout << first << " " << second << endl;
// int v[10];
// foo(v);
// foo(&v[0]);
// cout << v << endl;
// cout << &v[0] << endl;
//
//
//
// //setupLookupTable();
// //for(int k = 0; k < 1024; k++)
// // if (isPrime(k))
// // cout << k << endl;
// //string s, t;
// //int u;
//
// //ifstream jin;
// //jin.open("myfirstinput.txt");
// //jin >> s;
// //jin >> t;
// //cout << s << t << endl;
// //jin.close();
//
// //ofstream jout;
// //jout.open("c:/josh/myfirstoutput.txt");
// //for(int i = 0; i < 10; i++)
// // jout << i << " ";
// //jout << endl;
// //jout.close();
// //system("PAUSE");
//
// int A[3][3] =
// {
// { 4, 6, 0},
// { 6, 0, 1},
// { -1,3, 5}
// };
// int B[3][3] =
// {
// { 0, 6, 0},
// { 1, 0, 1},
// { 1, 0, 5}
// };
// int C[3][3];
// cout << "DP: " << dotProduct(A, B, 0, 1) << endl;
// add(A, B, C, 3, 3);
// print(C, 3, 3);
//
//cout << endl;
//cout << endl;
//cout << endl;
//
// int x[5] = {3,4,5,2,3};
// int y[5] = {1,1,0,2,3};
// int z[5];
// int a[5];
//
// // a = x * 6
// add(x, y, z, 5);
//
// print(z, 5);
//
// mult(y, 6, z, 5);
// print(z, 5);
//
// return 0;
}
Monday, August 2, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment