ショッピングモール  コエンザイムQ10(CoQ10) 美容液  コエンザイムQ10(CoQ10) クリーム


【掲示板ご利用上の注意】

 ※題名は具体的に!
 ※学校の課題の丸投げ禁止!
 ※ソースの添付は「HTML変換ツール」で字下げ!
 ※返信の引用は最小限に!
 ※環境(OSとコンパイラ)や症状は具体的に詳しく!
 ※マルチポスト(多重投稿)は謹んで!

 詳しくはこちら



 本当はこんなに大きく書きたくはないのですが、なかなか守っていただけなくて…。
 守ってくださいね。お願いします。(by管理人)

C言語ソース⇒HTML形式ツール   掲示板1こちら


管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧

No.3430

エラーが出ないのに、動作がうまくしません。誰か治してください。
投稿者---ゆうま(2005/02/14 21:26:22)



#include <stdio.h>

int main (void)
{

int x, a, h;
int bk ,bs ;/*b=分割*/
int br1 = 105 ;
int br2 = 110 ;
int br3 = 115 ;

int rk, rh ;/*r=リボ*/
int k2 = 107 ;
int k3 = 112 ;
int k4 = 117 ;
int k5 = 122 ;

int ik;/*i=一括*/

do{
printf("\nお支払方法はどうなさいますか?\n");
printf("\n分割払い・・・1 リボ・・・2 一括・・・3\n");
scanf("%d", &x);

switch (x) {/*caseによって、支払方法への分岐*/

case 1 :/*分割払い*/

do{ do{ do{ do{ do{ do{

printf ( "\nいくら借りますか?:" );
scanf( "%d", &bk );/* bK = 貸付金額 */

if ( bk <= 1 )
printf( "\n1円以上の貸付しかできません\a\n" );

}while( bk <= 1 ); /* 貸付最低金額が1円以上でループを抜ける */

if ( bk > 1000000 )
printf( "\n貸付は百万円以内でお願いします。\n" );

}while( bk > 1000000 );/*百万円以下でループ抜ける*/

printf( "\n何ヶ月のローンを組みますか:\n" );
scanf("%d", &bs);/*S = 返済期限*/

if ( bs <= 0 )
printf( "\n冷やかしはごめんだよ\a\n" );

if ( bs > 36 )
printf( "\n学生なんだから長いローンは組ませないぜ\a\n" );

}while( 0 >= bs || bs > 36 );/*0ヶ月以下のローンは組めない.整数でループ抜ける*/ /*36ヶ月のローンは長すぎる。36回払い以下でループ抜ける*/

printf( "\n頭金はどうなされますか?:\n" );
scanf( "%d", &a );/*a = 頭金*/

if ( a < 0 )
printf( "\n冷やかしはごめんだよ\a\n" );

}while( a < 0 );/*0円以下の頭金は認めない*/

if ( a >= bk)
printf( "\n頭金が多すぎます。頭金を減らしてください。\a\n" );

else if ( bs > bk - a )
printf( "\n%d円を頭金%d円いただいて%dヶ月ローンでは返済できません\a\n" ,bk ,a ,bs );

}while( ( bk - a ) < 0 ); /*とりあえず支払いがあればループ抜けと一回払の支いが1円以上でループ抜け*/

printf( "\n%d円を頭金%d円いただいて%dヶ月ローンでのご返済でございますね?\n" ,bk ,a ,bs );
printf( "\n ***利息表***\n"
"期限 1〜12ヶ月 13〜24ヶ月 25〜36ヶ月\n"
"利息 5%    10% 15%\n" );
printf( "\n利息計算時の小数点は切り下げになりますがよろしいですか?\nYES・・・0  NO・・・9:\n");
scanf( "%d", &h );

}while( h == 9 );

int *r;/*ポインタ当ててみた*/

if ( 1 < bs && bs < 13) r = &br1; /*1〜12ヶ月ローンのときに利率が5%*/
else if ( 12 < bs && bs < 25) r = &br2;/*13〜25ヶ月ローンのときに利率が10%*/
else if ( 24 < bs && bs < 37 ) r = &br3;/*24〜36ヶ月ローンのときに利率が15%*/


if ( ( *r * ( bk - a ) / 100 ) % bs )
printf( "\n%d円を%dヶ月ローンでのご返済ですね。最初の1ヶ月の支払い額は%d円です。次の月からは%d円を%d回お支払いくださいませ。\n",*r * ( bk - a )/ 100 ,bs , (( *r * ( bk - a ) / 100 ) / bs ) + ( ( *r * ( bk - a ) / 100 ) % bs ),( *r * ( bk - a ) / 100) / bs, bs - 1 );

else
printf( "\n%d円を%dヶ月ローンでのご返済ですね。支払いは%d円を%d回でお願いします。\n",*r * ( bk - a ) / 100 ,bs ,( *r * ( bk - a ) / 100 ) / bs , bs );

break;
case 2 :/*リボ払い*/

do{ do{ do{ do{ do{ do{ do{

printf( "\nいくら借りますか?:\n" );
scanf( "%d", &rk );/* rk = 貸付金額 */

if ( rk <= 1 )
printf( "\n1円以上の貸付しかできません\a\n" );


}while( rk <= 1 ); /* 貸付最低金額が1円以上でループ抜け */

if ( rk > 1000000 )
printf( "\n貸付は百万円以内でお願いします。\n" );

}while( rk > 1000000 );/* 貸付最低金額が百万円以下でループ抜け */

printf("\n頭金はどうなされますか?:\n");
scanf("%d", &a);/*a = 頭金*/

if ( a < 0 )
printf( "\n冷やかしはごめんだよ\a\n" );

}while( a < 0 ); /*0円以下の頭金ではループをふけない*/

if ( rk <= a )
printf("\n頭金が多すぎます。頭金を減らしてください。\n");

}while( rk <= a);/*頭金で完済*/

printf( "\n一ヶ月の返済金額はどうなさいますか?\n" );
scanf( "%d", &rh );/*rh=1ヶ月の支払い*/
if ( rh <= 0 )
printf( "\n冷やかしはごめんだよ\n" );

}while( rh <= 0);/*1ヶ月の支払額がないとループ抜けれない*/

if ( rh >= ( rk - a ) )
printf("\n一括払いのほうがお得ですので、そちらをご利用ください。\n");
}while( rh >= ( rk - a ) );/*一回で完済*/

printf( "\n%d円を頭金%d円いただいて一月%d円のリボ払いでございますね?\n",rk ,a ,rh );
printf( "\n ***利息表***\n"
"一月の偏差金額 1〜5000円  5001〜20000円 20001〜50000円 50001円〜\n"
"     利息  22%    17%   12%     7%\n");
printf( "\n利息計算時の小数点は切り下げになりますがよろしいですか?\nYES・・・0  N・・・9:\n" );
scanf( "%d", &h );
}while(h == 9);

int *f;/*ポインタ当ててみた*/

if ( 0 < rk && rk <5001 ) f = &k5 ;
else if ( 5000 < rk && rk < 20001) f = &k4 ;
else if ( 20000 < rk && rk < 50001 ) f = &k3 ;
else if ( 50000 < rk ) f = &k2 ;

if( ( *f * ( rk - a ) / 100 ) % rh )

printf( "\n%d円を%d円支払いのご返済ですね。%d円を%d回。%d円を、最後に一回お願いします。\n", ( *f * ( rk - a ) ) / 100, rh , rh, ( *f * ( rk - a ) ) / ( 100 * rh ), ( ( ( *f * ( rk - a ) ) / 100 ) % rh ) );
else
printf( "\n%d円を%d円支払いのご返済ですね。%d円を%d回お支払いください。\n", (*f * ( rk - a ) ) / 100 , rh ,rh, ( *f * ( rk - a ) ) / ( 100 * rh ) );

break;
case 3 :/*一括払い*/
do{
printf( "\n一括払いですね。\n" );
printf( "\nいくら借りますか?\n" );
scanf( "%d", &ik );

if(ik < 1)
printf("\n借りる気ありますか?\n");

}while( ik < 1 );
printf( "\n金利は5%ですので、%d円を月末にお支払いください。\n", (br1 * ik) / 100 );


default : printf("\n借りる気ありますか?\n"); }

}while( x <= 0 || 4 <= x );/*支払い選択時に1 or 2 or 3 の入力があるとループ抜けない*/

return(0);
}



この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:エラーが出ないのに、動作がうまくしません。誰か治してください。 3431 もぐりん 2005/02/14 21:33:38


No.3431

Re:エラーが出ないのに、動作がうまくしません。誰か治してください。
投稿者---もぐりん(2005/02/14 21:33:38)


【掲示板ご利用上の注意】
※マルチポスト(多重投稿)は謹んで!

理解できませんか?
掲示板1で同じような質問をしてますよね?


この投稿にコメントする

削除パスワード

No.3432

環境は・・・
投稿者---ゆうま(2005/02/14 21:38:25)




失礼いたしました。私はVBを使っていて、エラーが出ないです。ボーランドを使うと、エラーが出ます。これってどういうわけなんでしょうか?一応、VBのエラーメッセージはDebug\Cpp1.exe' はコード 0 (0x0) で終了しました。
です。どうか動かせるようになりたいんですがどのようにしたらいいでしょうか?
80行目と144行目の 「*f」「*r」というのが原因みたいなのですが、うまく直せないです。結構粘ったのですが・・・。どうか皆様お願いいたします


この投稿にコメントする

削除パスワード

No.3433

とりあえず、
投稿者---nanasi(2005/02/14 23:29:57)


caseごとに関数を分割、
do-whileで一回一回チェックしていますが、
最初に条件を提示(printf)しておいて
必要事項を入力させて
エラー条件があれば
再入力させ、
正しいところは記憶しておくなど、
ネスト構造が深いです。



この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    記事検索    ログ    タグ一覧




掲示板提供:Real Integrity