A 回答 (10件)
- 最新から表示
- 回答順に表示
No.10
- 回答日時:
こんなに豪華な回答陣にこれだけヒントを頂いて、自分のソースについて本当に考えているのか疑問です。
それはともかく、回答例を示します。#include <iostream>
using namespace std;
int main()
{
int i;
cout << "数字を入力してね(1000万まで)--->";
cin >> i;
while( i >= 1 ) {
if( i % 10 == 5 ) {
cout << "go";
break;
}
i /= 10;
}
return 0;
}
本当に15行程度でできてしまいましたね。このソースについての疑問点があれば、また質問してください。
No.9
- 回答日時:
1.数字を文字列(文字ではない)扱いする。
2.
#include <iostream>
using namespace std;
から始まるプログラムにする(他の標準ライブラリとか使わない)
3.if else whileの3つしか使えない
となると
以下の考え方はどうでしょう
文字列の長さを決める=1000万なので8桁ですね
charで9文字分(\nが入るため1文字分多め)の長さの配列を宣言する
while内でcharのi番目の文字と5(数字ではなく文字(文字列ではない))を比較する
あれば、goと表示
これで大体15行程度ですね(自分流コーディングで、{だけでも1行とする)
あと、できれば課題などは自分で考えてみる方が良いと思います。
そちらのほうが力が付くと思いますので・・・
No.8
- 回答日時:
No.6 さんの「ある数の上位桁から5があるか」の方法を、「下位桁から5があるか」にしてみました。
例)987654321 の場合
はじめに、1 をみます( % 10 )。NG
次に、10 で割った 98765432 の 2 をみます。NG
次に、10 で割った 9876543 の 3 をみます。NG
次に、10 で割った 987654 の 4 をみます。NG
次に、10 で割った 98765 の 5 をみます。go break
こうすることで、
質問者様のソース(重大な思い違い★がありますが・・)
>if (i % 10000000 ==5 || i % 1000000 ==5 || i % 100000 ==5 || i %10000 == 5 || i % 1000 ==5 || i % 100 == 5 || i % 10 ==5 || i % 1 ==5){
のように、たくさん書き並べる必要はありません。うしろから2番目 i % 10 == 5 だけで済みます。
★:i が 987654321 の場合「 i % 10000000 」は、7654321 ですよ。
ちなみに、++ でのプログラムは初めてで、using・・・ とか cout とかの用法?に誤りがありましたらご勘弁を・・。
ただし、動作確認はしています。
脱線
「実行(表示?)」にえらい時間が・・、目的の 1/10 の 1000000 までに77秒も要してしまった。
#include <iostream>
using namespace std;
int main()
{
int i = 1, iWork;
while( i <= 10000000 ){
iWork = i;
cout << i;
while( iWork ){
if( 5 == ( iWork % 10 ) ){ // 1の位の数が5か
cout << "go"; // 「改行」不要
break;
}
iWork /= 10; // 10で割る(=下位桁から)
}
cout << "\n"; // まとめて改行
i++;
}
return( 0 );
}
注:インデントに全角空白を用いています。コピペ後、タブに一括変換して下さい。
No.7
- 回答日時:
数字を入力とのことなのでstrstrを使わずに計算で各桁の数値を求める方法を提案してみたのですが
>>教室に通っていて
ということでしたら、どの程度のことを勉強したのかが分からないと
答えはたくさんあるので、求めている回答はなかなかでないんじゃないでしょうか
あと、提案させていただいた方法をうまく使うには
桁数の回数繰り返す、math.hをインクルードしてpow関数を使う
が必要かと思います。
回答ありがとうございます。
教室で習った内容は5の倍数のときにgoという文字が出てくるようにするとこまでしか習っていません。
だから
while if else
くらいしか習ってないんです。
この状況ではどうしたらソースプログラムが作れるでしょうか?
No.6
- 回答日時:
OH ノー すんまそ!
うそを言ってしまったので例を挙げよう。
#include <iostream>
using namespace std;
int main(){
int i = 1,dat,wk;
bool flag;
while (i < 10000){
flag = false;
cout << i;
dat = i;
wk = (dat / 10000);
if ( wk == 5) flag = true;
dat = dat - (wk * 10000);
wk = (dat / 1000);
if ( wk == 5) flag = true;
dat = dat - (wk * 1000);
wk = (dat / 100);
if ( wk == 5) flag = true;
dat = dat - (wk * 100);
wk = (dat / 10);
if ( wk == 5) flag = true;
dat = dat - (wk * 10);
wk = (dat / 1);
if ( wk == 5) flag = true;
if (flag){
cout << "go\n" ;
} else {
cout << "\n" ;
}
i++;
}
}
No.5
- 回答日時:
えぇと, たぶん勇み足だと思うけど 853 % 1 は 0 じゃないと困る>#3.
#include <iostream>
int main()
{
char ch;
while (std::cin >> ch) {
if (ch == '5') {
std::cout << "go\n";
}
}
return 0;
}
でいいのでは? 特に悩む必要があるとは思えないのだが.
No.3
- 回答日時:
お疲れ様です。
「C/C++」のカテゴリがあるのに、なぜそちらで聞かないのだろう?
>>でも僕自身全然知らない文字出てきて理解できません。すいません。
なんで調べようとしないのだろう?
なぜ、#2さんにお礼の言葉がないのだろう?
それでも、自分のプログラムを見てもらいたい場合に「申し訳ありませんが」の言葉がないのだろう?
ひとつだけヒントを出すと[853]という数字があったとする。
(1)853 % 100 = 53
(2)853 % 10 = 3
(3)853 % 1 = 853
どこにも5が出てこない。
回答ありがとうございます。
たしかに礼儀に問題ありましたね。すいません。
そして本題ですが、結局考えてもわからないんです。
どう考えればいいのかもいまいちわかりません。
No.2
- 回答日時:
こんにちは。
#include <cstdio>
#include <cstring>
char str[9];
sprintf(str,"%d",i);
if(strstr(str,"5") != NULL){
cout << "go:" << i << endl;
}
こんなのはどうでしょう?
iが入力ね。
ありがとうございます。
でも僕自身全然知らない文字出てきて理解できません。すいません。
No,1さんの回答のお礼に試しに自分が作ったのがあるんですが、そちらをチェックしてもらえませんか?
No.1
- 回答日時:
単純な考え方だと
例:87,654,321が入力されたら
87654321/10000000%10 = 8.7654321
87654321/1000000%10 = 7.654321
87654321/100000%10 = 6.54321
以下略
これ(8.7654321など)をintに入れれば小数点以下は切り捨てされて各桁の数が求められます
あとはifで5だったら~~とすればいいんじゃないでしょうか
※10のn乗を繰り返しを使って表現する場合はmath.hをインクルードするとできます
ありがとうございます。
回答の内容を読んで自分なりにやってみました。
申し訳ないんですけどこれでいいのか確認していただけますか?
#include <iostream>
using namespace std;
main(){
int i = 1;
while (i < 10000000){
cout << i;
if (i % 10000000 ==5 || i % 1000000 ==5 || i % 100000 ==5 || i %10000 == 5 || i % 1000 ==5 || i % 100 == 5 || i % 10 ==5 || i % 1 ==5){
cout << "go/n" ;
} else {
cout << "/n" ;
}
i++;
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C++のcinの動作 5 2023/02/26 00:13
- その他(プログラミング・Web制作) プログラミングについて(Python) 添付した画像はC言語で簡単に作ったソースで、1つの配列に5つ 3 2022/09/10 19:15
- C言語・C++・C# このプログラミングの問題を教えてほしいです。 キーボードからデータ数nとn個のデータを入力し、平均値 3 2022/12/19 22:51
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# プログラミングの問題です。写真のプログラムの1から10を下のように入力しましたがプログラムが上手くい 3 2022/07/01 23:31
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- C言語・C++・C# カードシャッフルのブログラムを使ってc言語でブラックジャックをしたい 2 2022/04/12 15:13
- Visual Basic(VBA) 【再々投稿】VBAのプログラムで動作しなくて困っています 8 2022/10/14 09:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラム言語について。
-
VBAでパワーシェルを実行したい...
-
C#とC++について。
-
CLispのloop内の挙動について
-
interface 2021年5月号 P46
-
VBA 電話番号の正規表現について
-
Windowsのアプリ開発ってなんの...
-
プログラミングのPythonのnoteb...
-
vba クリップボードクリアにつ...
-
ImageMagickでgif画像の一部が...
-
ExcelVBAでFormulaR1C1を列範囲...
-
pythonにてseleniumを使うも、...
-
ホワイトハッカー
-
小学1年生の子です。塾に行かせ...
-
pythonで複数画像からgifを作る...
-
ハッシュテーブル(連想配列)が...
-
httpリクエストの送り元の特定
-
楽しくて最高のプログラミング...
-
プログラミング
-
家庭のパソコンで Python の 環...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミング
-
小学1年生の子です。塾に行かせ...
-
vba クリップボードクリアにつ...
-
プログラマーと学歴の関係性に...
-
Webサイト内に埋め込んだmp4動...
-
正規表現で複数マッチ条件で悩...
-
windowsでテキストファイルの各...
-
楽しくて最高のプログラミング...
-
プログラミング ソースコード
-
Pythonって何を意識した言語な...
-
プログラミングを教えたいです...
-
pythonで複数画像からgifを作る...
-
pythonにてseleniumを使うも、...
-
Pythonでgif画像が上手く作れない
-
Google ColaboでGUI作成
-
テキストファイルのファイル名...
-
プログラミング、アーキテクチ...
-
そのまま使っただけなのに・・...
-
このURLで広告を出しているのは...
-
chatGPTで次々と質問をしていく...
おすすめ情報