teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

誤字

2019/07/24 09:52

投稿

MAIHIME
MAIHIME

スコア7

title CHANGED
File without changes
body CHANGED
@@ -15,6 +15,7 @@
15
15
  int main(void)
16
16
  {
17
17
  char FLname[64];
18
+ size_t len;
18
19
 
19
20
  printf("アルファベットで64文字以内してください->");
20
21
  fgets(FLname, sizeof(FLname), stdin);

2

誤字

2019/07/24 09:52

投稿

MAIHIME
MAIHIME

スコア7

title CHANGED
File without changes
body CHANGED
@@ -15,7 +15,6 @@
15
15
  int main(void)
16
16
  {
17
17
  char FLname[64];
18
- size_t len;
19
18
 
20
19
  printf("アルファベットで64文字以内してください->");
21
20
  fgets(FLname, sizeof(FLname), stdin);

1

質問の仕方の改善

2019/07/24 09:49

投稿

MAIHIME
MAIHIME

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- 入力した文字列から特定の文字の数を数えるプログラム(他もあり)
1
+ 入力した文字列から特定の文字の数を数えるプログラムで数えてくれない。
body CHANGED
@@ -1,14 +1,13 @@
1
- 入力した文字列から特定の文字の数を数えてその入力した文字数に点数として足していき最終的に最初に入力した数字が6の倍数だった場合1.3倍して最終点数をだすというプログラムなのですがかうまくきません。プログム自体苦手ネット調べながら縫い合わせ状態で作ったのでめちゃくちゃなもなってるかもれなく(か絶対なってる)専門用語とかぽんぽん回答言わてもわからな可能性がかなりあります(笑)よろくお願
1
+ 入力した文字列から特定の文字の数を数えてプログラムで同じよう質問(https://teratail.com/questions/62066)のベストアンサーを真似て作ったのですがcount_ter1とcouunt_str3の飛だ先のint a;やint c;が初期化されてないとエーがて、=0=NULL初期化してみたのですが、文字列中文字は0文字です。となってしまい一向に数えません。どこかしいのでしょうか?
2
2
  ーーー追記ーーー
3
+ c言語を習ってて出てきた問題の自己応用書いたものです。
3
- str1は1文字あるごに2点足
4
+ ソフトしてはc++のソフトでcを書いていま
4
- str3は1文字あるごとに1点足す
5
-
6
- ほかプログラム内にコメントで記載
7
5
  ーーーーーーーー
6
+ また質問形式がおかしかったらおかしいと言ってくれると嬉しいです。
8
7
  ### 該当のソースコード
9
-
8
+ ```
10
- include<stdio.h>//半角の#にすると質問の所で仕切られてしまうので全角になってる
9
+ #include<stdio.h>
11
- include<string.h>//上記と同じ
10
+ #include<string.h>
12
11
  int count_ter1(const char* FLname, const char* str1);
13
12
  int count_ter3(const char* FLname, const char* str3);
14
13
 
@@ -18,17 +17,11 @@
18
17
  char FLname[64];
19
18
  size_t len;
20
19
 
21
- printf("名前をアルファベットで入力してください->");
20
+ printf("アルファベットで64文字以内してください->");
22
21
  fgets(FLname, sizeof(FLname), stdin);
23
22
  FLname[strlen(FLname) - 1] = '\0';
24
- printf("%sさんですね!\n", FLname);
25
23
  printf("\n");
26
24
 
27
- len = strlen(FLname);
28
- printf("あなたの名前は%d文字です\n",len);
29
- printf("あなたの初期ポイントは%d点です\n", len);
30
- printf("\n");
31
-
32
25
  char str1[] = "dr";
33
26
 
34
27
  char str3[] = "auo";
@@ -36,26 +29,13 @@
36
29
  int num_ter1,num_ter3;
37
30
 
38
31
  num_ter1 = count_ter1(FLname, str1);
39
- printf("%d\n",num_ter1);//何文字あるとでない。仮でちゃんと数えてるか試すために書いたプログラム
32
+ printf("drは%d文字ありました\n",num_ter1);
40
33
  printf("\n");
41
34
 
42
35
  num_ter3 = count_ter3(FLname, str3);
43
- printf("%d\n", num_ter3);//ここも上記と同じく
36
+ printf("auoは%d文字ありました\n", num_ter3);
44
37
  printf("\n");
45
38
 
46
-
47
-     //計算ができない。そもそも点数足してないが・・・笑
48
- if (len % 6 == 0)
49
- {
50
- len* 1.3;
51
- printf("あなたの名前は6の倍数なので最終ポイントが1.3倍になります\n");
52
- printf("あなたの最終ポイントは%5.1f点です\n", len);
53
- }
54
- else
55
- {
56
- printf("あなたの最終ポイントは%d点です\n", len);
57
- }
58
-
59
39
  return 0;
60
40
  }
61
41
 
@@ -65,7 +45,7 @@
65
45
  int a;
66
46
  while ((a==*FLname++))
67
47
  {
68
- if (strchr(str1, a))//aが初期化されてないと言われた。
48
+ if (strchr(str1, a))
69
49
  {
70
50
  cut1++;
71
51
  }
@@ -79,14 +59,13 @@
79
59
  int c;
80
60
  while ((c == *FLname++))
81
61
  {
82
- if (strchr(str3, c))//cが初期化されてないと言われた。
62
+ if (strchr(str3, c))
83
-
84
63
  {
85
64
  cut3++;
86
65
  }
87
66
  }
88
67
  return cut3;
89
68
  }
90
-
69
+ ```
91
70
  ### 補足情報
92
71
  visual studio2019を使ってます。