# 実践問題 解答解説 ## 多重ループの解答解説 ### 全体の流れ  ### 手順 - 最初にキーボードから正の整数値を読み込む。これをa, bとする。 - 正の整数型で宣言するので、データ型はint型を持ち理宇 - 数列を出力する - 1からaまでの数列を出力する - 2.1をb回繰り返す - 繰り返しの際に2.1の数列をそれぞれ、繰り返しの回数分べき乗する。 ## 解答例(多重ループ) ``` #include <stdio.h> #include <math.h> int main(void) { int a, b; // 入力された値を読み込みための領域確保 scanf("%d %d", &a, &b); // 入力された値を読み込む for (int i = 1; i < b+1; i++) { for (int j = 1; j < a+1; j++) { printf("%.f", pow(j, i)); } printf("\n"); } return 0; } ``` ## ポインタの解答解説 ### 全体の流れ  ### 手順 - 最初にキーボードから正の整数値を読み込む。これをNとする。 - 正の整数で宣言するので、データ型はint型を用いる。 - キーボードからn文字の文字列を読み込む。 - 文字列なのでchar型の配列を宣言する - 制約よりNの最大値が10だから、配列の大きさは10で十分である。 - 読み込んだ文字列のなかで"c"の文字を探す - まず、文字列の先頭ポインタを参照する。 - ループを使って配列の先頭から順番に値を参照する。 - 参照した文字が"c"かどうかを判定 - "c"だった場合は、"c"の次の文字を出力する。 ## 解答例(ポインタ) ``` #include <stdio.h> #include <string.h> int main(void) { int n; scanf("%d", &n); char s[n]; char *p; scanf("%s", s); p = s; for (int i = 0; i < n; i++) { if (*(p+i) == 'c') { printf("%c\n", *(p+i+1)); } } return 0; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up