#include <stdio.h>
void main()
{
int c;
while ((c=getchar()) != EOF)
{
printf("%c[%d]", c, c);
}
printf("%c[%d]", c, c);
printf("End of Input!\n");
}
二維陣列練習
#include <stdio.h>
void main()
{
int matrix1[3][3] = { 1, 4, 7,
5, 6, 8,
2, 5, 3 };
int matrix2[3][3] = {{-1, 2, 4},
{3, 7, 9},
{2, 1, 0}};
int matrix3[3][3];
int i, j;
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
printf("%5d ",matrix1[i][j]);
printf("\n");
}
printf("+\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
printf("%5d ",matrix2[i][j]);
printf("\n");
}
for (i=0; i<3; i++)
for (j=0; j<3; j++)
matrix3[i][j] = matrix1[i][j] + matrix2[i][j];
printf("=\n");
for (i=0; i<3; i++)
{
for (j=0; j<3; j++)
printf("%5d ",matrix3[i][j]);
printf("\n");
}
}
二維陣列, 函式參數與函式呼叫練習
#include <stdio.h>
void readMatrix(int numRow, int numColumn, int matrix[3][3]);
void printMatrix(int numRow, int numColumn, int matrix[3][3]);
void addMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3]);
void main()
{
int matrix1[3][3];
int matrix2[3][3];
int matrix3[3][3];
printf("Please input the first matrix:\n");
readMatrix(3, 3, matrix1);
printf("Please input the second matrix:\n");
readMatrix(3, 3, matrix2);
printMatrix(3, 3, matrix1);
printf("+\n");
printMatrix(3, 3, matrix2);
addMatrix(3,3, matrix1, matrix2, matrix3);
printf("=\n");
printMatrix(3, 3, matrix3);
}
void readMatrix(int numRow, int numColumn, int matrix[3][3])
{
int i, j;
for (i=0; i<numRow; i++)
for (j=0; j<numColumn; j++)
scanf("%d,", &matrix[i][j]);
}
void printMatrix(int numRow, int numColumn, int matrix[3][3])
{
int i, j;
for (i=0; i<numRow; i++)
{
for (j=0; j<numColumn; j++)
printf("%5d ", matrix[i][j]);
printf("\n");
}
}
void addMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3])
{
int i, j;
for (i=0; i<numRow; i++)
for (j=0; j<numColumn; j++)
matrix3[i][j] = matrix1[i][j] +
matrix2[i][j];
}
矩陣乘法
#include <stdio.h>
void readMatrix(int, int , int [3][3], char []);
void printMatrix(int numRow, int numColumn, int matrix[3][3]);
void addMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3]);
void multMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3]);
void main()
{
int matrix1[3][3];
int matrix2[3][3];
int matrix3[3][3];
readMatrix(3, 3, matrix1,
"Please input the first matrix:\n");
readMatrix(3, 3, matrix2,
"Please input the second matrix:\n");
// add two matrices
printMatrix(3, 3, matrix1);
printf("+\n");
printMatrix(3, 3, matrix2);
addMatrix(3,3, matrix1, matrix2, matrix3);
printf("=\n");
printMatrix(3, 3, matrix3);
// multiply two matrices
printMatrix(3, 3, matrix1);
printf("*\n");
printMatrix(3, 3, matrix2);
multMatrix(3,3, matrix1, matrix2, matrix3);
printf("=\n");
printMatrix(3, 3, matrix3);
}
void readMatrix(int numRow, int numColumn, int matrix[3][3],
char message[])
{
int i, j;
printf("%s", message);
for (i=0; i<numRow; i++)
for (j=0; j<numColumn; j++)
scanf("%d,", &matrix[i][j]);
}
void printMatrix(int numRow, int numColumn, int matrix[3][3])
{
int i, j;
for (i=0; i<numRow; i++)
{
for (j=0; j<numColumn; j++)
printf("%5d ", matrix[i][j]);
printf("\n");
}
}
void addMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3])
{
int i, j;
for (i=0; i<numRow; i++)
for (j=0; j<numColumn; j++)
matrix3[i][j] = matrix1[i][j] +
matrix2[i][j];
}
void multMatrix(int numRow, int numColumn,
int matrix1[3][3],
int matrix2[3][3],
int matrix3[3][3])
{
int i, j, k;
if ((numRow > 3) ||
(numColumn > 3) ||
(numRow != numColumn))
return;
for (i=0; i<numRow; i++)
for (j=0; j<numColumn; j++)
{
matrix3[i][j] = 0;
for (k=0; k<numRow; k++)
matrix3[i][j] +=
matrix1[i][k] * matrix2[k][j];
}
}
遞迴函式練習
#include <stdio.h>
int fact(int n);
void main()
{
printf("Please input a number which is less than 13 : ");
scanf("%d", &number);
printf("The factorial of %d is %d\n", number, fact(number));
}
int fact(int n)
{
if (n > 13)
return -1;
else if (n <= 1)
return 1;
else
return n * fact(n-1);
}