C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[28]: プログラミング表参照方法


(過去ログ 93 を表示中)

[トピック内 34 記事 (1 - 20 表示)]  << 0 | 1 >>

■55381 / inTopicNo.1)  プログラミング表参照方法
  
□投稿者/ まんりな (1回)-(2010/11/29(Mon) 10:27:39)

分類:[C/C++] 

プログラミング初心者です。visualC++を使っているのですが、スーツサイズ表をあらかじめ入力しておき、たとえば男性の場合、使用者が身長とウエストを入力することで、その表を参照して、スーツのサイズを出力するというプログラムを作りたいです。どうやったら表を参照するでしょうか?教えてください!!
スーツサイズ表は、KOKUBOさんなどのものを参照したいと思います。
http://www.rakuten.ne.jp/gold/kokubo/suits-size.html
よろしくお願いします。
引用返信 編集キー/
■55382 / inTopicNo.2)  Re[1]: プログラミング表参照方法
□投稿者/ ごう (202回)-(2010/11/29(Mon) 10:40:08)
No55381 (まんりな さん) に返信

以下、補足をお願いします。

> visualC++を使っているのですが、

1. Visual C++(Visual Studio) のバージョンを教えてください。
例えば、「Visual Studio 2005 Professional」とか「Visual C++ 2008 Express Edition」とかです。
どこ見ればいいかわからなければその旨記してください。


2. プログラムの形式はどうしますか?
コンソールアプリにしますか? フォームアプリにしますか?
また、フォームアプリなら、MFCとか、C++CLIなどで作成方法が異なります。
プログラム作成指示を受けた人から、どんなアプリケーションで作ってほしいと頼まれているか確認してください。

3. 表形式ですが、いろんなやり方があります。
1. 2. の質問に答えていただけましたら、貴殿の条件に合わせて向いている方法を紹介したいと思うので
  補足をお願いします。



引用返信 編集キー/
■55396 / inTopicNo.3)  Re[2]: プログラミング表参照方法
□投稿者/ まんりな (2回)-(2010/11/29(Mon) 13:02:10)
No55382 (ごう さん) に返信
> >
> すみません、説明不足でした。
使っているのは、visualstudio2008のvisual C++で、win32のコンソールアプリケーションです。
できるだけ簡単なコマンドで、わかりやすいものがいいです。
よろしくお願いします。
引用返信 編集キー/
■55400 / inTopicNo.4)  Re[3]: プログラミング表参照方法
□投稿者/ PATIO (60回)-(2010/11/29(Mon) 14:18:09)
2010/11/29(Mon) 14:19:32 編集(投稿者)

まず、プログラムの仕様(何を引き渡して、何を出力するかとか、どういう動きをするか)を
考えるのは、まんりなさんご自身がされる事です。
プログラム仕様に関しては、掲示板を見ている方では決められません。
仮決めでも何でもご自身で決めて提示してください。
もしも仕様に矛盾があれば、掲示板を見ている人が指摘してくれるでしょう。
指摘はできても提示はできません。

あと、ご自身のプログラミングに関する知識はどの程度ありますか?
C++言語の文法とオブジェクト指向(クラスに関する)の知識はどの程度あるのでしょう。
VC++でプログラミングするのでしたら多分C++言語を使ってプログラミングをする事に
なると思います。言語の知識がないのでしたら、まずはそちらの勉強をされる事を
お勧めします。文法が分からないのではプログラミングをする事は無理です。

文法は解っていて、自分で独自クラスを作成くらいできますと言うことなら
いきなり言われているようなプログラムも可能かなと思いますが、
そこもこれから勉強しますと言う事であれば、いきなり何かを作るのではなくて
まずはC++言語の入門書等で文法の勉強をした方が良いと思いますよ。

引用返信 編集キー/
■55402 / inTopicNo.5)  Re[4]: プログラミング表参照方法
□投稿者/ ごう (203回)-(2010/11/29(Mon) 14:42:28)
2010/11/29(Mon) 14:42:43 編集(投稿者)
No55396 (まんりな さん) に返信
> 使っているのは、visualstudio2008のvisual C++で、win32のコンソールアプリケーションです。

「Visual Studio 2008」までは、わかりました。
Visual Studioのエディションがわかりません。一応、参考に 「正式名称」教えてもらえますか??
(Professional とか、Express Editionとか )
ツールバーの[ヘルプ]→[○○○のバージョン情報]と書いてあると思いますので
その○○○を教えてください。

単純な方法としては、表をテキストファイルに持たせて、そこから読み書きする方法はどうでしょうか。
(もし、サイズ規格が代わっても、テキストファイルを差し替えるようにすれば対応できますからね。)

では、C言語でテキストファイルの読み書きは出来ますか?
(出来なければまず、テキストファイルの読みだし方法を覚えてください。)
他にも、配列や構造体も理解してないと難しいと思います。

PATIOさんのコメントにもありますが、あくまでも私は仕様については全くわかりませんので、
仕様については必ず一緒に開発している人や上司にきちんと相談されますようお願いします。


以下、あくまで一例ですが・・・。


(1)表の内容をテキストファイルに書き写します。
   テキストファイルは以下のような感じでカンマ区切り形式で作っておきます
[例]
┌────────────────┐
│165, 175, 80, X号        |
│165, 175, 85, Y号               |
│165, 175, 90, Z号               |
└────────────────┘
(2)ファイルの読み込みをし、1行づつ読み込みます。
(3)読み込んだ1行ごとの文字列を、カンマごとに分割します。
(4)入力した条件(身長、ウエストサイズ)に合致したところでスーツサイズを表示し読み込みを中止します。

引用返信 編集キー/
■55412 / inTopicNo.6)  Re[5]: プログラミング表参照方法
□投稿者/ PATIO (64回)-(2010/11/29(Mon) 19:25:58)
2010/11/29(Mon) 19:26:57 編集(投稿者)

ネット上にあるデータを参照して入力した値と比較して結果を出すという話なら
そこまで行くにはかなり道のりが遠いのでいきなりそこを目指す事はお勧めしません。

一番最初のステップとしてやるのならプログラム上に配列を使ってデータを
記述しておいて、入力された値と比較して結果を出力すると言う所でしょう。

更にステップアップするならその表のデータをテキストファイルで用意して
プログラムはそれを読み込んで最初のプログラムを同じ事をすると言うことに
なると思います。(ごうさんが書かれているのがこれですね)

更に先に進むなら・・・と言う具合になりますね。
どのレベルから取り組むかはご自身の知識がどの程度あるかによると思います。
但し、文法の知識その物が怪しいなら入門書からはじめることをお勧めします。

引用返信 編集キー/
■55419 / inTopicNo.7)  Re[6]: プログラミング表参照方法
□投稿者/ まんりな (5回)-(2010/11/30(Tue) 09:59:20)
No55402 (ごう さん) に返信
たびたびすみません、express edition です。
大学での後期授業だけでの勉強なので、ほとんどの技術を持ち合わせていません。3つプログラムを作って発表しなきゃいけないと焦っているため、自力ではできない部分を教えていただこうと思ったんです。いろいろと申し訳ありませんでした。なんとか自分でやってみようと思います。



No55412 (PATIO さん)に返信
ご教授ありがとうございます。ごうさんにも書いたとおりですが、私には技術が全然ありません。ネット上のデータ(サイズ表)はネットから引き込むわけではなく、あくまでサイズの決め方を参照するためです。プログラム上に配列を使ってデータを記述しておいて、入力された値と比較して結果を出力するやり方を知りたかったんです。ただまだ習いたてのため、そのやり方をどう表現すればいいのかわからなかったのです。申し訳ありません。
いろいろ調べて自分でやってみます。


お二人とも、いろいろ教えていただきありがとうございます。
引用返信 編集キー/
■55429 / inTopicNo.8)  Re[7]: プログラミング表参照方法
□投稿者/ ごう (205回)-(2010/12/01(Wed) 21:07:34)
No55419 (まんりな さん) に返信

別に怒ってるわけではないですけど、質問されたことに対しては答えるように意識されたほうが今後のためには大事かな、と私は思います。
プログラミングについては、勉強し始めたばかりとのことでできないことが多いのは仕方ないと思います。

逆に、大学の授業で半年程度かけてやった内容は、どれぐらいの難易度だったのでしょう?
「授業でやってる内容なのに、できない」というのは復習が必要です…。
(課題やテストにも出るでしょうし、プログラミングで将来ご飯を食べていこうとするならばなおさらです…)


# (余談)私が(約10年前)大学のプログラミング演習でやった内容ではねー、
# 半年間(実質3.5ヶ月)で「Hello World!」の出力に始まり、テキストファイルの入出力や構造体までの文法は習いました。(ポインタはなかった)
# また、それを使用した問題がテストや課題で出題されていました。

貴殿の問題をまるっと代行してやってあげることは出来ないけどさ、
「自分でここまでやってみたけど、○○がわからなかった」とか具体的に書いてくれれば解決へのヒントや考え方のアドバイスぐらいはもらえると思います。
一人でやっていくのも難しいでしょうから、わからなかったらまた質問しにおいで。
では頑張ってください。


最後にヒント: この問題、当初の質問に書かれていた「身長」と「ウエストサイズ」の2つだけではスーツサイズ出せないよね。
「胸囲」と「腹囲」から「体型」を出して、そこから「身長」で割り出さないとね。

引用返信 編集キー/
■55485 / inTopicNo.9)  Re[8]: プログラミング表参照方法
□投稿者/ まんりな (6回)-(2010/12/03(Fri) 13:17:55)
No55429 (ごう さん) に返信
いろいろおしえていただき、ありがとうございます。
今、大学でやっていることは、入出力(printf scanf)、変数(int double float long)、演算子(+-/*%)、条件処理(if switch)、繰り返し(for)の、基本中の基本しかやっていません。

なのに、プログラム3つ作ってこいというのが課題になっているため、条件処理を使って長いプログラムは作れるかも知れないですけど、もっと簡潔に作ることができないかと思って質問をした次第です。

ヒントをありがとうございます。
いろいろ調べているんですが、大体の目安がこの身長とウエストで出るようだったため、それを入力したものを作ろうと思ったものです。もう少し調べてみます
引用返信 編集キー/
■55487 / inTopicNo.10)  Re[9]: プログラミング表参照方法
□投稿者/ PATIO (67回)-(2010/12/03(Fri) 13:30:25)
書かれている感じだとC言語の文法の内、極基本的な部分だけのようですね。
C言語についてもっと知りたいと感じられたらC言語の入門書を最初から
一通り通しで勉強されると良いと思います。
学校で習った事の復習にもなりますし。
できれば演習付きの本が良いと思いますよ。

ファイルからの入力とかを考えないのであれば、
習った範囲でも結構色んな事ができるはずです。

プログラムに基本は条件分岐と繰り返し、そして演算(+-/*%)です。
やりたい事を実現する為に現実にある物を一旦記号化して考える。
数値化して考えると言う部分はありますが、そこは慣れるしかないですね。
プログラムの文法の基礎は学んでいるようですから、
後はいろいろなプログラムを作って慣れていくしか無いと思います。
繰り返しと条件分岐を使って情報の配列の中から特定の情報を
探し出すと言った基本的なアルゴリズムを覚えると更に幅が広がります。
プログラムは結局作った通りにしか動きません。
ですが、逆に言うときちんと作りさえすれば、必ず動きます。
(コンピュータに機嫌によって動かないはありませんから)

引用返信 編集キー/
■55489 / inTopicNo.11)  Re[10]: プログラミング表参照方法
□投稿者/ まんりな (8回)-(2010/12/03(Fri) 13:47:00)
No55487(PATIOさん)に返信

いろいろ教えていただきありがとうございます。
そうですよね、きちんと作りさえすれば動きますよね。
長々となってしまうプログラムになるかもしれないですけど、
いろいろ試しながら慣れつつ考えてみます。

本当にありがとうございます。
引用返信 編集キー/
■55534 / inTopicNo.12)  Re[11]: プログラミング表参照方法
□投稿者/ ごう (219回)-(2010/12/05(Sun) 21:04:17)
No55489 (まんりな さん) に返信
>入出力(printf scanf)、
>変数(int double float long)、
>演算子(+-/*%)、
>条件処理(if switch)、
>繰り返し(for)

これだけでも、「プログラムができないことはない」ので、課題が出されたのかなーとも思ったり。
ただ、効率の良いプログラムを作るためには、
配列やファイル入出力、構造体、ポインタ、関数が欠かせなくなってきますけどね。
いい機会なので予習のつもりで教科書や他の入門書でどんどん先取りして覚えてもいいと思います。頑張ってください。

# もしかして、今使える技法のみでプログラムを作って言ってるうちに「もっと効率のいい書き方があればいいのに」と気づかせるための課題だったりして。


引用返信 編集キー/
■55553 / inTopicNo.13)  Re[12]: プログラミング表参照方法
□投稿者/ まんりな (9回)-(2010/12/06(Mon) 12:49:19)
2010/12/06(Mon) 12:54:35 編集(投稿者)
2010/12/06(Mon) 12:53:26 編集(投稿者)

<pre><pre>■No55534 (ごう さん) に返信
> ■No55489 (まんりな さん) に返信
> これだけでも、「プログラムができないことはない」ので、課題が出されたのかなーとも思ったり。

> # もしかして、今使える技法のみでプログラムを作って言ってるうちに「もっと効率のいい書き方があればいいのに」と気づかせるための課題だったりして。
>
そうかもしれません。
一応、ひとつは干支調べができるプログラムをwhich〜case文で作ったのですが、干支の十干十二支の組み合わせが60通りあるので、
それをすべてcaseで打ったら大変長くなってしまっています。
もう少し短くする方法はないかなとは思っているけど、まだ調べる段階ではないです。


今、正しく入力されなかったり、調べた後に、「入力を続けますか?(yes=1,no=2)」でreturnで戻るようにしたいんですが、
勝手になにもせず終了されてしまいます。どうなっているんでしょう?
#include <stdio.h>
void main(void)
{
int tosi,amari,ans;
printf("干支とは、十干十二支を組み合わせたものことをいいます。六十年で干支は一巡します。\n");
for(tosi;;){
printf("あなたが調べたい年は?\n");//干支調べ
scanf("%d",&tosi);
amari=(60+(tosi-964))%60;
switch(amari){
case 0:
printf("%d年は一番目、甲子(きのえ ね)年です。\n",tosi);
break;
case 1:
printf("%d年は二番目、乙丑(きのと うし)年です。\n",tosi);
break;
case 2:
printf("%d年は三番目、丙寅(ひのえ とら)年です。\n",tosi);
break;
case 3:
printf("%d年は四番目、丁卯(ひのと う)年です。\n",tosi);
break;
case 4:
printf("%d年は五番目、戊辰(つちのえ たつ)年です。\n",tosi);
break;
case 5:
printf("%d年は六番目、己巳(つちのと み)年です。\n",tosi);
  break;
case 6:
printf("%d年は七番目、庚午(かのえ うま)年です。\n",tosi);
break;
case 7:
printf("%d年は八番目、辛未(かのと ひつじ)年です。\n",tosi);
break;
case 8:
printf("%d年は九番目、壬申(みずのえ さる)年です。\n",tosi);
break;
case 9:
printf("%d年は十番目、癸酉(みずのと とり)年です。\n",tosi);
break;
case 10:
printf("%d年は十一番目、甲戌(きのえ いぬ)年です。\n",tosi);
break;
case 11:
printf("%d年は十二番目、乙(きのと い)亥年です。\n",tosi);
break;
case 12:
printf("%d年は十三番目、丙子(ひのえ ね)年です。\n",tosi);
break;
case 13:
printf("%d年は十四番目、丁丑(ひのと うし)年です。\n",tosi);
break;
case 14:
     printf("%d年は十五番目、戊寅(つちのえ とら)年です。\n",tosi);
break;
case 15:
printf("%d年は十六番目、己卯(つちのと う)年です。\n",tosi);
break;
case 16:
printf("%d年は十七番目、庚辰(かのえ たつ)年です。\n",tosi);
break;
case 17:
printf("%d年は十八番目、辛巳(かのと み)年です。\n",tosi);
break;
case 18:
printf("%d年は十九番目、壬午(みずのえ うま)年です。\n",tosi);
break;
case 19:
printf("%d年は二十番目、癸未(みずのと ひつじ)年です。\n",tosi);
break;
case 20:
printf("%d年は二十一番目、甲申(きのえ さる)年です。\n",tosi);
break;
case 21:
printf("%d年は二十二番目、乙酉(きのと とり)年です。\n",tosi);
break;
case 22:
printf("%d年は二十三番目、丙戌(ひのえ いぬ)年です。\n",tosi);
break;
case 23:
printf("%d年は二十四番目、丁亥(ひのと い)年です。\n",tosi);
break;
case 24:
printf("%d年は二十五番目、戊子(つちのえ ね)年です。\n",tosi);
break;
case 25:
printf("%d年は二十六番目、己丑(つちのと うし)年です。\n",tosi);
break;
case 26:
printf("%d年は二十七番目、庚寅(かのえ とら)年です。\n",tosi);
break;
case 27:
printf("%d年は二十八番目、辛卯(かのと う)年です。\n",tosi);
break;
case 28:
printf("%d年は二十九番目、壬辰(みずのえ たつ)年です。\n",tosi);
break;
case 29:
printf("%d年は三十番目、癸巳(みずのと み)年です。\n",tosi);
break;
case 30:
printf("%d年は三十一番目、甲午(きのえ うま)年です。\n",tosi);
break;
case 31:
printf("%d年は三十二番目、乙未(きのと ひつじ)年です。\n",tosi);
break;
case 32:
printf("%d年は三十三番目、丙申(ひのえ さる)年です。\n",tosi);
break;
case 33:
printf("%d年は三十四番目、丁酉(ひのと とり)年です。\n",tosi);
break;
case 34:
printf("%d年は三十五番目、戊戌(つちのえ いぬ)年です。\n",tosi);
break;
case 35:
printf("%d年は三十六番目、己亥(つちのと い)年です。\n",tosi);
break;
case 36:
printf("%d年は三十七番目、庚子(かのえ ね)年です。\n",tosi);
break;
case 37:
printf("%d年は三十八番目、辛丑(かのと うし)年です。\n",tosi);
break;
case 38:
printf("%d年は三十九番目、壬寅(みずのえ とら)年です。\n",tosi);
break;
case 39:
printf("%d年は四十番目、癸卯(みずのと う)年です。\n",tosi);
break;
case 40:
printf("%d年は四十一番目、甲辰(きのえ たつ)年です。\n",tosi);
break;
case 41:
printf("%d年は四十二番目、乙巳(きのと み)年です。\n",tosi);
break;
case 42:
printf("%d年は四十三番目、丙午(ひのえ うま)年です。\n",tosi);
break;
case 43:
printf("%d年は四十四番目、丁未(ひのと ひつじ)年です。\n",tosi);
break;
case 44:
printf("%d年は四十五番目、戊申(つちのえ さる)年です。\n",tosi);
break;
case 45:
printf("%d年は四十六番目、己酉(つちのと とり)年です。\n",tosi);
break;
case 46:
printf("%d年は四十七番目、庚戌(かのえ いぬ)年です。\n",tosi);
break;
case 47:
printf("%d年は四十八番目、辛亥(かのと い)年です。\n",tosi);
break;
case 48:
printf("%d年は四十九番目、壬子(みずのえ ね)年です。\n",tosi);
break;
case 49:
printf("%d年は五十番目、癸丑(みずのと うし)年です。\n",tosi);
break;
case 50:
printf("%d年は五十一番目、甲寅(きのえ とら)年です。\n",tosi);
break;
case 51:
printf("%d年は五十二番目、乙卯(きのと う)年です。\n",tosi);
break;
case 52:
printf("%d年は五十三番目、丙辰(ひのえ たつ)年です。\n",tosi);
break;
case 53:
printf("%d年は五十四番目、丁巳(ひのと み)年です。\n",tosi);
break;
case 54:
printf("%d年は五十五番目、戊午(つちのえ うま)年です。\n",tosi);
break;
case 55:
printf("%d年は五十六番目、己未(つちのと ひつじ)年です。\n",tosi);
break;
case 56:
printf("%d年は五十七番目、庚申(かのえ さる)年です。\n",tosi);
break;
case 57:
printf("%d年は五十八番目、辛酉(かのと とり)年です。\n",tosi);
break;
case 58:
printf("%d年は五十九番目、壬戌(みずのえ いぬ)年です。\n",tosi);
break;
case 59:
printf("%d年は六十番目、癸亥(みずのと い)年です。\n",tosi);
break;
default:
printf("入力が正しくありません。\n");
printf("続けますか?(yes=1,no=2)\n");
scanf("%d",ans);
if(ans=1){
printf("入力を続けます。\n");
return;
}
else(ans=2);{
printf("入力を終了します。\n");
break;
}
}
}
}

どこかおかしいですか?</pre></pre>
引用返信 編集キー/
■55555 / inTopicNo.14)  Re[13]: プログラミング表参照方法
□投稿者/ shu (236回)-(2010/12/06(Mon) 13:01:58)
2010/12/06(Mon) 13:15:13 編集(投稿者)
No55553 (まんりな さん) に返信

> for(tosi;;){
for(ans=1;ans==1;){
    ans = 2;  <--- 成功したら終わるのであれば

> if(ans=1){
>	printf("入力を続けます。\n");
>	return;
>}
>else(ans=2);{
>	printf("入力を終了します。\n");
>	break;
>}

if(ans==1) {
	printf("入力を続けます。\n");
} else {
	printf("入力を終了します。\n");
}


これでどうでしょう?



引用返信 編集キー/
■55559 / inTopicNo.15)  Re[14]: プログラミング表参照方法
□投稿者/ まんりな (10回)-(2010/12/06(Mon) 13:29:55)
No55555 (shu さん) に返信
> ■No55553 (まんりな さん) に返信
>
>>for(tosi;;){
> for(ans=1;ans==1;){
> ans = 2; <--- 成功したら終わるのであれば
>
>>if(ans=1){
> > printf("入力を続けます。\n");
> > return;
> >}
> >else(ans=2);{
> > printf("入力を終了します。\n");
> > break;
> >}
>
> if(ans=1) {
> printf("入力を続けます。\n");
> } else {
> printf("入力を終了します。\n");
> }
>
やってみましたけど…入力が正しくありませんって出た後、「続けますか?」で1や2を押すと、プログラムが 動作を停止してしまうんです。

あと、「続けますか?」の後に1を入れると、また「あなたの調べたい年は?」に戻るようにしたいんですが、どうしたらいいでしょう?

引用返信 編集キー/
■55560 / inTopicNo.16)  Re[15]: プログラミング表参照方法
□投稿者/ shu (237回)-(2010/12/06(Mon) 13:49:51)
2010/12/06(Mon) 13:52:18 編集(投稿者)
No55559 (まんりな さん) に返信

編集したのですが遅かったようで、
> if(ans=1) {
if(ans==1) {
のように=を2にして下さい。



#include <stdio.h>
void main(void)
{
    int tosi,amari,ans;
    printf("干支とは、十干十二支を組み合わせたものことをいいます。六十年で干支は一巡します。\n");
    for(ans=1;ans==1;) {
        printf("あなたが調べたい年は?\n");//干支調べ
        scanf("%d",&tosi);
        amari=(60+(tosi-964))%60;
        switch(amari){
           case 0:
                printf("%d年は一番目、甲子(きのえ ね)年です。\n",tosi);
                break;
           case 1:
                printf("%d年は二番目、乙丑(きのと うし)年です。\n",tosi);
                break;

   ・・・・
   ・・・・

           case 59:
                printf("%d年は六十番目、癸亥(みずのと い)年です。\n",tosi);
                break;
            default:
                printf("入力が正しくありません。\n");
                break;
            }
        }
        printf("続けますか?(yes=1,no=2)\n");
        scanf("%d",&ans);      <--- &抜けてます
        printf("Debug:ans = %d\n", ans);   <--- デバッグ用
        if(ans==1){
            printf("入力を続けます。\n");
        } else {
            printf("入力を終了します。\n");
        }
    }
}

こんな感じかな。

引用返信 編集キー/
■55562 / inTopicNo.17)  Re[16]: プログラミング表参照方法
□投稿者/ まんりな (11回)-(2010/12/06(Mon) 14:15:47)
No55560 (shu さん) に返信
> 2010/12/06(Mon) 13:52:18 編集(投稿者)
>
> ■No55559 (まんりな さん) に返信
>
> 編集したのですが遅かったようで、
>>if(ans=1) {
> if(ans==1) {
> のように=を2にして下さい。
>
>
>
> #include <stdio.h>
> void main(void)
> {
> int tosi,amari,ans;
> printf("干支とは、十干十二支を組み合わせたものことをいいます。六十年で干支は一巡します。\n");
> for(ans=1;ans==1;) {
> printf("あなたが調べたい年は?\n");//干支調べ
> scanf("%d",&tosi);
> amari=(60+(tosi-964))%60;
> switch(amari){
> case 0:
> printf("%d年は一番目、甲子(きのえ ね)年です。\n",tosi);
> break;
> case 1:
> printf("%d年は二番目、乙丑(きのと うし)年です。\n",tosi);
> break;
>
> ・・・・
> ・・・・
>
> case 59:
> printf("%d年は六十番目、癸亥(みずのと い)年です。\n",tosi);
> break;
> default:
> printf("入力が正しくありません。\n");
> break;
> }
> }
> printf("続けますか?(yes=1,no=2)\n");
> scanf("%d",&ans); <--- &抜けてます
> printf("Debug:ans = %d\n", ans); <--- デバッグ用
> if(ans==1){
> printf("入力を続けます。\n");
> } else {
> printf("入力を終了します。\n");
> }
> }
> }
>

これやると、「あなたの調べたい年は?」が無限ループで続いてしまいます。
引用返信 編集キー/
■55563 / inTopicNo.18)  Re[17]: プログラミング表参照方法
□投稿者/ ごう (222回)-(2010/12/06(Mon) 14:18:40)
No55562 (まんりな さん) に返信
> これやると、「あなたの調べたい年は?」が無限ループで続いてしまいます。

if(ans==1){
printf("入力を続けます。\n");

☆ 続けるための処理(もしくは、何も書かない)
} else {
printf("入力を終了します。\n");

      ☆ 終了させるための処理
}


☆印に入れる処理が抜けています。
引用返信 編集キー/
■55566 / inTopicNo.19)  Re[18]: プログラミング表参照方法
□投稿者/ まんりな (12回)-(2010/12/06(Mon) 14:42:36)
No55563 (ごう さん) に返信
> ■No55562 (まんりな さん) に返信
>>これやると、「あなたの調べたい年は?」が無限ループで続いてしまいます。
>
> if(ans==1){
> printf("入力を続けます。\n");
>
> ☆ 続けるための処理(もしくは、何も書かない)
> } else {
> printf("入力を終了します。\n");
>
>       ☆ 終了させるための処理
> }
>
>
> ☆印に入れる処理が抜けています。


なるほど。まだループから抜けられないので、もうちょっと試してみます。
ありがとうございます。
引用返信 編集キー/
■55568 / inTopicNo.20)  Re[17]: プログラミング表参照方法
 
□投稿者/ shu (238回)-(2010/12/06(Mon) 14:51:22)
No55562 (まんりな さん) に返信
>> printf("続けますか?(yes=1,no=2)\n");
>> scanf("%d",&ans); <--- &抜けてます
>> printf("Debug:ans = %d\n", ans); <--- デバッグ用
>> if(ans==1){
>> printf("入力を続けます。\n");
>> } else {
>> printf("入力を終了します。\n");
>> }
この部分はswitchのブロックの外にありますが大丈夫でしょうか?
この中の各printfは表示されていますか?
引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -