高度プログラミング演習 (05)
演習問題 2×3 の行列と3×1の行列をそれぞれ入力でき、それらの行列の掛け算をするプログラムを作成せよ。
c[i][j] += a[i][k]*b[k][j]; } for(j=0;i<1;j++) b00 b10 b20 a00 a01 a02 a10 a11 a12 a00*b00+a01*b10+a02*b20 a10*b00+a11*b10+a12*b20 for(k=0;k<3;k++) for(i=0;i<2;i++) for(i=0;i<2;i++) for(j=0;j<1;j++){ c[i][j]=0; for(k=0;k<3;k++) c[i][j] += a[i][k]*b[k][j]; }
演習問題 入力した2×2の行列の行列式の値を求めるプログラムを作成せよ。 2つの3×3 の行列の各要素を入力でき、それらの行列の足し算および引き算をするプログラムを作成せよ。
行列式の値を求める include<stdio.h> void main() { int a[2][2]; int i,j,k; printf(" 2 x 2 行列の入力をします。\n"); for(i=0;i<2;i++) for(j=0;j<2;j++){ printf("(%d %d) 成分を入力してください。: ",i+1,j+1); scanf("%d",&a[i][j]); } for(i=0;i<2;i++){ for(j=0;j<2;j++) printf("%3d ",a[i][j]); printf("\n"); printf("行列式の値は %d です。\n",a[0][0]*a[1][1]-a[0][1]*a[1][0]);
条件分岐と場合分け if 条件 処理 他の条件 場合わけ ある場合の処理 別の場合の処理
条件分岐 #include <stdio.h> if (条件){ .....; void main() int num=0; scanf(“%d”,&num); if(num>0){ printf(“%d > 0\n”,num); }else if(num<0){ printf(“%d < 0\n”,num); }else{ printf(“%d == 0\n”,num); } if (条件){ .....; } else if (条件){ } else { } 等しい == 等しくない != かつ && または ||
練習問題 数当てゲームのプログラムを作成せよ。 プログラムの実行時に乱数で1から1000まで範囲で数字(答え)を決める。 入力した数字に対して答えのある範囲を狭めてゆく 0 < X < 1001 100 < X < 1001 100 < X < 500 何回目で正解が出るか表示する
場合わけ switch (変数){ case 場合 : .....; break; case 場合: default: } #include <stdio.h> void main(){ int num=0; scanf(“%d”,&num); if(num<16){ switch (num){ case 15: printf(“F\n”); break; case 14: printf(“E\n”); case 13: printf(“D\n”); case 12: printf(“C\n”); case 11: printf(“B\n”); case 10: printf(“A\n”); default: printf(“%d\n”,num); } switch (変数){ case 場合 : .....; break; case 場合: default: }
文字型の変数 char a; #include <stdio.h> void main() { char a; char data[128]; int n=0,j=0; while(n<128){ data[n]=getchar(); if(data[n]=='.'){ if(n<127) n++; break; } for(j=0;j<n;j++){ if (data[j]>='a'&&data[j]<='z') data[j] =data[j]+('A'-'a'); printf("%c",data[j]); printf("\n"); #include <stdio.h> void main() { char a; a=getchar(); printf(“%c\n”,a); }
練習問題 16進数を10進数に変換するプログラムを作成せよ。 入力した文字列に a,b,c という文字がそれぞれいくつあるか表示するプログラムを作成せよ。 if 文、case 文を用いてそれぞれ作成すること。
演習問題 2次方程式 a*x*x + b*x + c =0 を解くプログラムを作成せよ。ただし、x が虚数となる場合は、解がない旨表示するようにせよ。 入力した文字列に アルファベットの各文字がそれぞれいくつあるか表示するプログラムを作成せよ。(if文、case文両方使ったものをそれぞれ作成すること。) This is a pen. a:1,e:1,h:1,i:2,n:1,p:1,s:2,T:1