質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

1448閲覧

このプログラムどのように動いているのか教えてほしいです…

ayatuki_s_m

総合スコア15

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

0クリップ

投稿2017/07/12 10:09

C

1コード

#include <stdio.h>
int main(void)
{

int i,ch;
int cnt[10] = {0};

while ((ch = getchar()) != EOF ) {
if(ch >= '0' && ch <= '9')
cnt[ch - '0']++;

}

puts("数字文字の出現回数");
for (i = 0; i<10; i++)
printf(" '%d' : %d\n", i ,cnt[i]);

return 0;
}
/*./kadai13ren1
231414564
数字文字の出現回数
'0' : 0
'1' : 2
'2' : 1
'3' : 1
'4' : 3
'5' : 1
'6' : 1
'7' : 0
'8' : 0
'9' : 0
*/

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

アスキーコードの数字の0~9はバイナリHEXで30~39になります。
これをgetcharで取得できます。
chには整数の30~39が入ります。これから30を引くと期待する整数になります。
'9'-'0'は整数の9になる事になります。

cnt[ch - '0']++; --> cnt[9]++ と同じです。

投稿2017/07/12 10:27

A.Ichi

総合スコア4070

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

わざと雑に書いています。
せめて、どこがわからないのか説明できるようになってから質問してください。

C

1#include <stdio.h> 2int main(void) 3{ 4 int i, ch; 5 int cnt[10] = {0}; 6 7 // EOFが入力されるまで文字を読み取る 8 while((ch = getchar()) != EOF) { 9 // 入力された文字が数字の場合 10 if(ch >= '0' && ch <= '9') 11 // ほにゃらら 12 cnt[ch - '0']++; 13 } 14 15 puts("数字文字の出現回数"); 16 // cntの全要素を参照するためにループを使用 17 for(i = 0; i < 10; i++) { 18 // ほにゃらら 19 printf("'%d' : %d\n", i, cnt[i]); 20 } 21 22 return 0; 23}

投稿2017/07/12 10:23

編集2017/07/12 11:30
LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ayatuki_s_m

2017/07/12 10:52

回答ありがとうございます。 // ほにゃらら cnt[ch - '0']++; でのchには getcharで読みまれた文字が、ASC||コードでの十進数で表され、 その値が格納されている。 と考えてよろしいのでしょうか?
LouiS0616

2017/07/12 11:01

A.Ichiさんの解答のとおりです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問