入力した整数値を、putchar関数で表示するプログラムを作ったのですが、scanf関数で数字を読み込んだ後の動作がエラーが出るため実行できません。
ソースコードは以下の通りです。
#include <stdio.h> #define NUMBER 100 // 桁数 int digit_count(int number) { int digit = 0; while (number){ number /= 10; digit++; } return digit; } // 先頭までの桁と同じだけ10を掛ける int digit_number(int digit) { int num = 1; while (digit--) num *= 10; return num; } void print_integer(int number) { int i = 0; int temp[NUMBER] = { 0 }; int zero = 48; // JISコードでの'0'の10進数での値 int digit, count = digit_count(number); for(i = 0; number/= 10; i++, digit--) // 先頭の桁の数字に'0'の値を足す temp[i] = number / digit_number(digit) + zero; for(i = 0; count; i++, count--) putchar(temp[i]); } int main() { int num; printf("***整数をputchar関数で表示するプログラム***\n"); printf("整数:"); scanf("%d", &num); print_integer(num); return 0; }
どこかの書き方がおかしいからエラーが出ているでしょうが、見当が付きません。
実行環境は Microsoft Visual Studio 2015 です。
回答3件
あなたの回答
tips
プレビュー