include stdio h include math h main double
#include <stdio. h> #include <math. h> main() { double a, b, c, d; printf("a * x^2 + b * x + c =0 の方程式を解きます。"); printf("係数 a, b, c をそれぞれ入力して下さい : "); scanf("%lf %lf", &a, &b, &c); if(a==0){ if(b==0) printf("解はありません。n"); else printf("x = %fn", -c/b); } else { d = pow(b, 2)-4*a*c; if(d<0) printf(" x は 虚数 です。n"); else if(d==0){ printf("x= %8. 3 fn", (-b+sqrt(d))/(2*a)); }else{ printf("x= %8. 3 f, %8. 3 fn", (-b+sqrt(d))/(2*a), (-b-sqrt(d))/(2*a)); } } }
#include <stdio. h> void main() { char data[128]; int n=0, i=0, j=0; int cnt[52]; char ii; while(n<128){ data[n]=getchar(); if(data[n]=='. '){ if(n<127) n++; break; } n++; } for(i=0; i<52; i++) cnt[i]=0; for(i=0; i<n; i++){ for(ii='a'; ii<='z'; ii++){ if (data[i]==ii) cnt[ii-'a']++; } for(ii='A'; ii<='Z'; ii++){ if (data[i]==ii) cnt[26+ii-'A']++; } } for(ii='a'; ii<='z'; ii++) printf(" %c : %dn", ii, cnt[ii-'a']); for(ii='A'; ii<='Z'; ii++) printf(" %c : %dn", ii, cnt[26+ii-'A']); }
ii for(i=0; i<n; i++){ for(ii='a'; ii<='z'; ii++){ if (data[i]==ii) cnt[ii-'a']++; } for(ii='A'; ii<='Z'; ii++){ if (data[i]==ii) cnt[26+ii-'A']++; } } cnt 0 ‘a’-’a’ cnt 1 ‘b’-’a’ cnt 2 ‘c’-’a’ cnt 26 26+‘A’-’A’ cnt 27 26+‘B’-’A’ cnt 28 26+‘C’-’A’
#include <stdio. h> void main() { char data[128]; int n=0, i=0, j=0; int cnt[52]; char ii; for(i=0; i<n; i++){ if(data[i]>='a'&& data[i]<='z') cnt[data[i]-'a']++; while(n<128){ data[n]=getchar(); if(data[n]=='. '){ if(n<127) n++; break; } n++; } for(i=0; i<52; i++) cnt[i]=0; if(data[i]>='A'&& data[i]<='Z') cnt[26+data[i]-'A']++; } for(ii='a'; ii<='z'; ii++) printf(" %c : %dn", ii, cnt[ii-'a']); for(ii='A'; ii<='Z'; ii++) printf(" %c : %dn", ii, cnt[26+ii-'A']); }
data[i] for(i=0; i<n; i++){ if(data[i]>='a'&& data[i]<='z') cnt[data[i]-'a']++; if(data[i]>='A'&& data[i]<='Z') cnt[26+data[i]-'A']++; } cnt 0 ‘a’-’a’ cnt 1 ‘b’-’a’ cnt 2 ‘c’-’a’ cnt 26 26+‘A’-’A’ cnt 27 26+‘B’-’A’ cnt 28 26+‘C’-’A’
関数 // 二つの行列を表示するプログラム #include <stdio. h> void main() { int matrx. A[2][2], matrix. B[2][2]; int i, j; for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. A[i][j]); printf(“n”); } for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. B[i][j]); printf(“n”); } }
関数 // 二つの行列を表示するプログラム #include <stdio. h> void main() { int matrx. A[2][2], matrix. B[2][2]; int i, j; for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. A[i][j]); printf(“n”); } for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. B[i][j]); printf(“n”); } } ほぼ共通
関数 // 二つの行列を表示するプログラム #include <stdio. h> void print_matrix(int matrix[2][2]) { int i, j; for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. A[i][j]); printf(“n”); } } void main() { int matrx. A[2][2], matrix. B[2][2]; int i, j; print_matrix(matrix. A); print_matrix(matrix. B): }
関数 // 二つの行列を表示するプログラム #include <stdio. h> void print_matrix(int matrix[2][2]) { int i, j; for(i=0; i<2; i++){ for(i=0; j<2; j++) printf(“%3 d “, matrix. A[i][j]); printf(“n”); } } void main() { int matrx. A[2][2], matrix. B[2][2]; int i, j; print_matrix(matrix. A); print_matrix(matrix. B): }
関数の基本 戻り値 foo (引数) { } int foo 1() { int x; return x; } void foo 2() { int foo 3(int x, int y) { } void main() { int a; a=foo 1(); foo 2(); } }
例題 • 0から15までの十進数を 16進数表記するプロ グラムを作成せよ。 #include <stdio. h> void main() { int num; scanf("%d", &num); if(0<=num&&num<10) printf("%d", num); else if(9<num<16) printf("%c", 'a'+(num-10)); else printf("X"); printf("n"); }
例題問題 • ある十進数を 16進表記するプログラムを作 成せよ。 #include <stdio. h> void d 2 h(int num) { if(0<=num&&num<10) printf("%d", num); else if(9<num<16) printf("%c", 'a'+(num-10)); else printf("X"); } void main() { int num, i, c=0; int k[32]; scanf("%d", &num); while(num > 15){ k[c]=num % 16; num = num/16; c++; } k[c]=num; for(i=c; i>=0; i--) d 2 h(k[i]); printf("n"); }
例題問題 • 一桁の 16進数を 10進数で表示するプログラ ムを作成せよ。 #include <stdio. h> if(num == -1) printf("Xn"); else printf("%dn", num); void main() { char h; int num=0; } h=getchar(); if('0'<=h&&h<='9') num = 0 + (h-'0'); else if('a'<=h&&h<='f') num = 10 + (h-'a'); else num = -1;
例題問題 • 8桁以下の 16進数を10進数で表示するプロ グラムを作成せよ。 #include <stdio. h> #include <math. h> int h 2 d(char h) { int num=0; if('0'<=h&&h<='9') num = 0 + (h-'0'); else if('a'<=h&&h<='f') num = 10 + (h-'a'); else num = -1; return num; } void main() { char h[8]; int i, n=0, d=0, k; for(i=0; i<n; i++){ k = h 2 d(h[i]); if(k == -1){ printf("Invalid n"); return; } d = d + k * pow(16, n-1 -i); } while(n<8){ h[n]=getchar(); if(h[n]=='n') break; n++; } printf("%dn", d); }
- Slides: 22