![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?c9bd177)
c言語の文字列について質問です。
putcharを用いて整数を表示するプログラムなのですが
下のプログラムを出力したところ数値を入力しても出力することができません。どこがおかしいのでしょうか?
アドバイス等よろしくお願いします
#include <stdio.h>
void print_integer(int number){
int i,j;
char no[256];
for(i=0;i<sizeof(number);i++){
no[i]=number%10;
}
for(j=sizeof(number)-1;j>0;j--){
putchar(no[j]);
}
}
int main(void) {
int number;
printf("number?:");scanf("%d",&number);
print_integer(number);
return 0;
}
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
>for(i=0;i<sizeof(number);i++){
>no[i]=number%10;
>}
ループの中で毎回全く同じ計算をしてるから
noにーの位の数値しかはいらないよね。
それに10進の数値の桁数はsizeof じゃ求まらない。
>for(j=sizeof(number)-1;j>0;j--){
>putchar(no[j]);
>}
putcharで出力するなら、数値をasciiコード(数字を表わす文字コード)に直して
出力しないとだめ。
No.3
- 回答日時:
さすがに scanf や putchar は C の言語仕様に入ってるんだけどなぁ>#1. 「言語」そのものじゃなくて「標準ライブラリ」だけど, 標準ライブラリも ISO 9899 に規定する「言語仕様」の一部ではある. 「使えない処理系が存在する」ことは否定しないけど.
さておき, putchar がどのような機能であるか理解していますか?
No.2
- 回答日時:
> for(i=0;i<sizeof(number);i++){
> no[i]=number%10;
を、
printf("for(i=0;のループ開始, sizeof(number)=%d\n", sizeof(number));
for(i=0;i<sizeof(number);i++){
printf("i=%d\n", i);
no[i]=number%10;
printf("no[i=%d]=%d\n", i, no[i]);
とか、iやnumberとかsizeof(number)の数値を確認して、質問者さんが入力、期待した通りの数値になっているか、確認したら何かの手掛かりになるかも。
No.1
- 回答日時:
このような質問をするときには処理系(OS,コンパイラ)を書かなければダメですね。
scanf,putcharなどはCの言語仕様ではありません。
sizeof(number)の意味を理解していない。
no[i]=number%10;では同じ数値の繰り返し。
no[j]の中には何が入っているかを理解していない。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- C言語・C++・C# プログラミング c言語 4 2023/03/07 01:05
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# C言語 3 2022/10/04 15:07
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Cプログラムについて
-
C言語 exitの使い方
-
エクセルのマクロについて教え...
-
○桁にある数値を取得する VB.N...
-
エクセルへのデータの貼付時に...
-
だれがとけるの?
-
C言語 アロー演算子について質...
-
テキストボックスの値を変数に...
-
正規表現で、英数記号を含むパ...
-
EXCEL/VBA 変数の値をクリップ...
-
異なる文字列のマッチングを、D...
-
C言語 exitで終了した関数の戻...
-
C言語 列挙型(enum型)変数について
-
VBAでC列が入力済みならそのま...
-
LOG(10)2の意味は?
-
VisualStudio2022でC言語プログ...
-
for the first timeとfirst tim...
-
コンボボックスの名前を変数に...
-
jsp~jspにhiddenを使って変数...
-
フォームを開くときに、コンボ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングについての質問...
-
平均、最大値、最小値を表示す...
-
C言語初心者です。次の問題で質...
-
c言語 プログラミング 等比数列...
-
プレゼント交換プログラム
-
Cプログラムについて
-
if文を条件演算子に書き換えに...
-
C言語の問題 1 つの文字をキー...
-
エクセルのマクロでの積分
-
c言語でランタイムエラーの処理...
-
C言語 累乗の計算
-
任意の数から人の数までの素数...
-
c言語の文字列について質問です...
-
C言語 exitの使い方
-
エラーの意味は? Lvalue req...
-
VBAでダブルコーテーション入り...
-
フォームを開くときに、コンボ...
-
Excel-vba 文字列と変数を...
-
excelの、ある数式内の{}の意...
-
エクセルへのデータの貼付時に...
おすすめ情報