(1) a[4]={5,3,6,2}を画面に表示するプログラム
#include<stdio.h>
void main()
{
int a[4]={5,3,6,2};
int i;
for(i=0;i<4;i++){
printf("%d番目の要素=%d¥n",i+1,a[i]);
}
}
(2) a[0]=5,a[2]=6の並び替えプログラム
#include<stdio.h>
void main()
{
int a[4]={5,3,6,2};
int i,tmp;
tmp=a[0];
a[0]=a[2];
a[2]=tmp;
for(i=0;i<4;i++){
printf("%d番目の要素=%d¥n",i+1,a[i]);
}
}
(3) 配列を大きい順に並び替えるプログラム
#include <stdio.h>
void main()
{
int a[4]={5,3,6,2};
int i,j,tmp;
for(i=0;i<4;i++){
for(j=i+1;j<4;j++){
if(a[i]<a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
printf("%d",a[i]);
}
}
(4) 10個の数字を小さい順に並び替えるプログラム
#include <stdio.h>
void main()
{
int a[10]={5,2,8,6,4,9,2,2,5,1};
int i,j,k,tmp;
for(k=0;k<10;k++){
printf("%d",a[k]);
}
printf("¥n");
for(i=0;i<10;i++){
for(j=i+1;j<10;j++){
if(a[i]>a[j]){
tmp=a[i];
a[i]=a[j];
a[j]=tmp;
}
}
printf("%d",a[i]);
}
}
(1),(2),(3) 成績表から平均値・偏差値を求め,総合得点を高い順に並び替えるプログラム
#include <stdio.h>
#include <math.h> /* sqrt 平方根を求める関数を使うために必要 */
void main()
{
int seiseki[6][5]={ {65,71,74,82,97},
{84,83,74,64,65},
{74,74,78,80,78},
{90,90,90,90,90},
{87,78,85,60,88},
{93,95,94,92,95} };
float heikin[6]; /* 各人の平均値用配列,6人分 */
float sum; /* 各人の平均点の和 */
float sum2; /* 標準偏差を計算するための一時的な変数.自乗の和 */
float stdev; /* 各人の合計点の標準偏差 */
float tmp; /* 並び替え一時変数 */
float hensachi[6]; /* 各人の偏差値用配列,6人分 */
int i; /* カウンタ変数,科目用 */
int j; /* カウンタ変数,出席番号用 */
int k,l,m,n; /* 並び替え用 */
/********************************/
/* 1.まず各人の平均点の計算 */
/********************************/
for(j=0; j<6; j++) {
/* ゼロで初期化 */
heikin[j] = 0.0;
/* 出席番号 j の人の全科目の合計点を計算 */
for(i=0; i<5; i++) {
heikin[j] += seiseki[j][i];
}
/* 平均点=合計点/科目数 */
heikin[j] /= 5;
}
/* 確認のために各人の平均点を画面に表示 */
for(j=0; j<6; j++) {
printf("出席番号 %d の平均点 = %f ¥n", j+1, heikin[j]);
}
/***********************************************/
/* 2.平均点の標準偏差(ばらつき)を求める. */
/***********************************************/
/* 平均点の和を計算 */
sum = 0.0;
for(j=0; j<6; j++) {
sum += heikin[j];
}
/* 次に,平均点の自乗の和を計算 */
sum2 = 0.0;
for(j=0; j<6; j++) {
sum2 += heikin[j] * heikin[j];
}
/* 標準偏差の計算 */
stdev = sqrt( (6 * sum2 - sum * sum) / (6*(6-1)) );
printf("標準偏差=%f¥n", stdev);
/**************************************/
/* 3.各人の合計点の偏差値の計算. */
/**************************************/
for(j=0; j<6; j++) {
hensachi[j] = 50 + 10 * ( heikin[j]-(sum/6) ) / stdev;
}
/* 画面に表示 */
for(j=0; j<6; j++) {
printf("出席番号 %d の偏差値 = %f ¥n", j+1, hensachi[j]);
}
for(n=0; n<6; n++) {
heikin[n] = 0.0;
/* 出席番号 j の人の全科目の合計点を計算 */
for(m=0; m<5; m++) {
heikin[n] += seiseki[n][m];
}
}
/********************************/
/* 4.合計点の並び替え */
/********************************/
for(k=0;k<6;k++){
for(l=k+1;l<6;l++){
if(heikin[k]<heikin[l]){
tmp=heikin[k];
heikin[k]=heikin[l];
heikin[l]=tmp;
}
}
printf("%d番の合計点=%.0f¥n",k+1,heikin[k]);
}
}
(4),(5)グラフィックス
#include<stdio.h>
void main()
{
int a[8][8]={{1,0,0,0,0,0,0,1},
{0,1,0,0,0,0,1,0},
{0,0,1,0,0,1,0,0},
{0,0,0,1,1,0,0,0},
{0,0,0,1,1,0,0,0},
{0,0,1,0,0,1,0,0},
{0,1,0,0,0,0,1,0},
{1,0,0,0,0,0,0,1}};
int i,j;
for(i=0;i<8;i++){
for(j=0;j<8;j++){
if(a[i][j]==1){ /*問(5)では,1を0に変えるだけ*/
printf("x");
}else{
printf(" ");
}
}
printf("¥n");
}
}
(6)三目並べ
#include<stdio.h>
void main()
{
int a[3][3]={{0,0,0},
{0,0,0},
{0,0,0},};
int i,j,k,b,c,d;
for(i=0;i<3;i++){
printf("行=¥n"); scanf("%d",&b);
printf("列=¥n"); scanf("%d",&c);
printf("人=¥n"); scanf("%d",&d);
a[b][c]=d;
for(j=0;j<3;j++){
for(k=0;k<3;k++){
printf("%d",a[j][k]);
}
printf("¥n");
}
}
}