新しく質問する

for文を別のint内で定義し、初めのint文内で呼び出す??? 何という名のプログラム名?ですか???

役に立った:0件
  • 質問者:jpncndgoo2
  • 投稿日時:2007/10/20 04:59
  • 困り度:困ってます
  • 友達に紹介
  • ブログに書く
  • 教えて!gooお気に入り

毎度毎度忙しい中失礼します。現在<私のプログラム>を基に<参照プログラム>のようにプログラムを作り変えようとしていますが、正直お手上げ状態です。

どうしても<参照プログラム>に基づいてプログラムを組まなければならないのです。

どこがお手上げ状態かといえば、<参照プログラム>を参考にすると、int multInts(int x, int y)内の条件の組み方が<私のプログラム>内でどのようにして組めばいいのかが全くもって分かりません。かなり考えても分からないレベルです・・・私にとっては。
int multInts(int x, int y)の定義の仕方を真似て<私のプログラム>でも真似てみるのですが・・・出来ないのです。何をどう直せば良いのでしょうか???初期化でtra=0;とすると、表示は"0"になったりするし・・・。簡単かと思われるかもしれませんが・・・私にとってはかなり難しいのです。
”丸投げ”みたいな感じで恥ずかしいのですが、どうかアドバイスだけでも下さい。お願いします。

出力結果
1.5桁数字入力:"12345"と入力 (これは出来ます)
2.偶数桁のみ抽出して2倍にする→"14385" (最不明部: <参照プログラム>内のmultInts内の条件を<私のプログラム>内でどのようにして組むのかが分かりません)
3.各桁の数値を足し合わせる→1+4+3+8+5=21(不明部: 2.が出来ないので出来ません)
4.その数値が”妥当”か”不当”かをDOS?画面に表示(不明部:2.と3.が出来ないので出来ません)

<私のプログラム>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main()
{
int num,tra;
int inpt=5;
int inptnum;
int sum=0;
//#define 0

printf("5桁入力; ");
scanf("%d", &num);

if (num==0){
printf("その値は0です。 \n");
}

else{

for(inpt ; inpt >=1 ; inpt--)

{
if(inpt%2 == 0) {
inptnum = pow(10,inpt-1);
tra = (num/inptnum)%10;
//printf("%d",tra*2);
tra=(tra*2)/10+(tra*2)%10;
printf("%d",tra);
}

else{
inptnum = pow(10,inpt-1);
tra = (num/inptnum)%10;
printf("%d",tra);
}

sum += tra;

}
printf("\n %d\n",sum);

sum= sum%10;
if(sum==0)
{
printf("妥当な数値です。\n");
}
else
{
printf("不当な数値です。\n");
}
}
system("pause");

return 0;
}

<参照プログラム>
#include <stdio.h>
#include <stdlib.h>

int main(){
int multInts(int x, int y);
int num1,num2,answer;
printf("間にスペース設けて2つの値入力: ");
scanf("%d%d", &num1, &num2);

answer = multInts( num1, num2);
printf("%d * %d=%d\n", num1, num2, answer);
system("pause");
return 0;
}
int multInts(int x, int y)
{
int result = 0;
int i;
for (i=1 ;i<=y ;i++)
{
result=result + x;
}
return result;
}

この質問への回答は締め切られました。
このQ&Aは役に立ちましたか?(役に立った:0件)
  • 参考になった:0件
  • 回答者:koko_u_
  • 回答日時:2007/10/20 06:31

>これを<参照プログラム>に倣って<私のプログラム>内で組みたいのです。
もう一度言いますが、参照プログラムに倣う必要性をまったく見出すことができません。あえて「for ループを見倣っています」と強弁する程度の意味しかなさそうです。

自分で好きなようにコーディングするのが吉。

通報する

  • 参考になった:0件

No.2ベストアンサー10pt

  • 回答者:koko_u_
  • 回答日時:2007/10/20 05:41

>どうしても<参照プログラム>に基づいてプログラムを組まなければならないのです。
これが全く理解不能です。multInts(int x, int y); で単に x * y ( y ≧ 0 ) ですよね?なぜ必要なのですか?

ANo.1 の方も指摘しているように、入力を「文字列」として受け取ってしまうのが最もわかりやすいと思います。

通報する

この回答への補足

主プログラム内::"12345"と入力→福プログラム内呼び出し→21%10=1→”不当な数値”と表示する
福プログラム内:"12345"→”14385"→"1+4+3+8+5=21"処理を行う
これを<参照プログラム>に倣って<私のプログラム>内で組みたいのです。
というプログラムを作りたいのです。
よろしければ再アドバイス願います。

  • 参考になった:0件

No.1ベストアンサー20pt

  • 回答者:SAYKA
  • 回答日時:2007/10/20 05:07

理屈だけ書いておくね

○入力された物は「数値」
○これを「桁毎にバラす」という方法が必要
 ◆演算によって1桁ずつ取り出す
 ◆そもそも入力を文字列にしてしまって後で数値に戻す
 のどちらかの方法が考えられる

いずれにしても「配列」という概念が必要になるかもしれないね

通報する

この回答への補足

!「桁毎にバラす」というアドバイスから、今自分なりに自分に合ったレベルに落として、プログラムを組み直しています。
また、分からなくなったら質問することにします。
皆さん色々とアドバイスありがとうございました。

この回答へのお礼

アドバイスありがとうございます。
更にアドバイス等あれば、また書き込んでやってください。

  
このQ&Aは役に立ちましたか?(役に立った:0件)

このページのトップへ

Facebook公式ページ

公式Twitter