こんにちは
K&Rを読んでいるのですが、p.107の演算4-12の問題の意味がよくわかりません。
演算4-12
printdのアイデアを使ってitoaの再帰版を書け。すなわち、再帰ルーチンを呼ぶことによって整数を文字列に変換せよ。
(以下、p.105より)
いま、数字を文字列として印字する関数を考えよう。すでに述べたように(p.77)数字は逆順生成される。すなわち、低い桁の数字が高い桁の数字より先に得られるが、印字するときは反対にしなければならない。この問題には二つの解がある。
一つは生成した順に配列に格納し、3.6節のitoaでしたように、逆順に印字する方法である。配列の初期値式が指定された数より少ないときには、外部変数、静的変数、自動変数については、残りの要素は0となる。
もう一つの方法は再帰を使う解法で、任意の先行する数字に対処するのにprintdでそれ自身を呼び、それから後尾の数字を印字すればよい。ただこの版でも、最大の負の数には対処できない。
#include <stdio.h>
/* printd: n を10進で印字 */
void printd(int n)
{
if ( n < 0 ) {
putchar('-');
n = -n;
}
if ( n / 10 )
printd(n / 10);
putchar(n % 10 + '0');
}
自分としては、itoaの再帰版がprintdだと思うのですが、printd以外にitoaの再帰版があるのでしょうか?
演算4-13 の方はできたのですが、演算4-12 の方がわからなくて、悩んでいます。
演算4-13
文字列 s をその場所で逆順にする関数reverse(s)の再帰版を書け。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Ruby 初心者プログラミング 3 2022/10/12 11:31
- Java Java 南京錠 2 2023/02/04 11:46
- 計算機科学 急ぎです、大学数学再帰の問題難しくてがわからないです。 以下の4つの文字列を連結して新たに生成できる 1 2023/05/17 20:11
- 数学 【 数A 順列 】 問題 6個の数字0,1,2,3,4,5,を使ってできる次 のような整数は何個ある 7 2022/06/19 12:33
- 数学 【 数A 順列 】 問題 6個の数字0,1,2,3,4,5を使ってできる次の ような整数は何個あるか 1 2022/06/19 12:18
- C言語・C++・C# C言語 3 2022/10/04 15:07
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- 数学 数学Aについて分からない問題があります。 答えは載っているので分かりますが、 解き方がわかりません。 5 2023/02/03 18:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
nullと""、\\0とEOFの違いにつ...
-
[C++]WCHARの1文字目しか表示で...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
プログラムによく出てくるst...
-
C++で入力した文字列から数字を...
-
構造体→文字列→構造体 をする方法
-
C言語の勉強しています。すみま...
-
Shift_JIS(16進)を文字に変換す...
-
c#で他のアプリの文字入力フォ...
-
16進数を2文字ずつ配列に格納し...
-
TCL言語で文字列検索方法を教え...
-
関数に文字列を渡すことについて
-
VBを2008を用いてCSVを取り込む...
-
PIC18F26K22でsscanf関数を使い...
-
シリアル通信で0x00を送信した...
-
C言語で、ワイド文字の表示がう...
-
関数から配列を返すには?
-
Integer変数をカラにしたいので...
-
C言語のintとcharの違いってな...
-
セグメントエラー
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C++で入力した文字列から数字を...
-
nullと""、\\0とEOFの違いにつ...
-
プログラムによく出てくるst...
-
%dなどの違い
-
WSH(VBS)でJSONの文字列を読み...
-
TCL言語で文字列検索方法を教え...
-
C#でstringをポインタとして渡す
-
16進数を2文字ずつ配列に格納し...
-
_tcscpy_s(wcscpy_s)の第二引数...
-
C++で文字列の右端から特定の文...
-
シリアル通信で0x00を送信した...
-
VBA-DLLの引数受け渡しについて
-
数字の入った配列をファイルへ...
-
c#で他のアプリの文字入力フォ...
-
構造体→文字列→構造体 をする方法
-
Shift_JIS(16進)を文字に変換す...
-
バイナリファイル中の日本語文...
-
C言語の課題で困っています;
-
[C++]WCHARの1文字目しか表示で...
-
VB6.0でのバイナリデータの扱い...
おすすめ情報