|
#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);
}
|