2016-12-06 7 views
0

私はちょうどプログラミングを始めています。私の2番目のasignmentを得たが、本当に私を悩ます何かがある。 このプログラムは、食料品を書き留めておき、変数bを必要とせず、取り除くことができたら大丈夫です。再度実行すると、jumlah [i] * harga [i]は常に0になります。 代わりに変数bを置換しようとすると、プログラムは正常に戻ります。それで問題は何ですか?C++:この変数は何ですか?

#include <iostream> 
 
#include <iomanip> 
 
#include <windows.h> 
 
#include <ctime> 
 
BOOL gotoxy(const WORD x, const WORD y) { 
 
    COORD xy; 
 
    xy.X = x; 
 
    xy.Y = y; 
 
    return SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), xy); 
 
} 
 
using namespace std; 
 
string nonota, namabrg; 
 
char yorno, lanjut; 
 
int jumlah[30], a, b, i; //problem 
 
float diskon, Tharga, pembayaran, kembalian, harga[30], stlhdiskon; 
 

 
int main() 
 
{ 
 
    cout<<fixed<<setprecision(0); 
 
    Tharga=0; 
 
    a=3; 
 
    do 
 
    { 
 
    cout<<"Nomor Nota   : "; 
 
    cin>>nonota; 
 

 

 
     time_t now = time(0); 
 
    cout<< "Tanggal    : "; 
 
     tm* ltm= localtime(&now); 
 
      cout<<ltm->tm_mday<<"-"; 
 
      cout<<1 + ltm->tm_mon<<"-"; 
 
      cout<<1900 + ltm->tm_year<<endl; 
 
      cout<<" --------------------------------------------------------------------------"; 
 
    //cout tabel 
 
    gotoxy(5,a); cout<<"Nama Barang"; 
 
    gotoxy(22,a); cout<<"|"; 
 
    gotoxy(25,a); cout<<"Harga Satuan"; 
 
    gotoxy(43,a); cout<<"|"; 
 
    gotoxy(45,a); cout<<"Jumlah"; 
 
    gotoxy(54,a); cout<<"|"; 
 
    gotoxy(62,a); cout<<"Total Harga"<<endl; 
 
    cout<<" --------------------------------------------------------------------------"; 
 
    //data 
 
     do{ 
 
      a=a+2; 
 
      for(i=0; i<31; i++) 
 
      gotoxy(5,a); cin>>namabrg; 
 
      gotoxy(25,a); cin>>harga[i]; 
 
      gotoxy(45,a); cin>>jumlah[i]; 
 
      gotoxy(62,a); cout<<jumlah[i]*harga[i]<<endl; 
 
      Tharga+=jumlah[i]*harga[i]; 
 
      cout<<"barang berikutnya y/n?"; 
 
      gotoxy(5,a+2); cin>>lanjut; 
 
      if(lanjut=='n' or lanjut=='N') {i=31;} 
 
      gotoxy(0,a+1); cout<<"         "; 
 
     } 
 
     while(lanjut=='y' or lanjut=='Y'); 
 
     gotoxy(0,a+2); cout<<"         "; 
 
      gotoxy(45,a+2); cout<<"Total Harga : Rp. "<<Tharga<<endl; 
 
      gotoxy(45,a+3); cout<<"Diskon  : Rp. "; 
 
      diskon=0; 
 
       if(Tharga>=1000000){diskon=0.2;} 
 
       if(Tharga>=500000 and Tharga<1000000){diskon=0.15;} 
 
       if(Tharga>=100000 and Tharga<500000) {diskon=0.1;} 
 
      cout<<diskon*Tharga<<endl; 
 
      gotoxy(45,a+4); cout<<"Harga  : Rp. "<<Tharga-(diskon*Tharga)<<endl; 
 
      gotoxy(45,a+5); cout<<"Pembayaran : Rp. "; cin>>pembayaran; 
 
      gotoxy(45,a+6); cout<<"Kembalian : Rp. "<<pembayaran-(Tharga-(diskon*Tharga))<<endl; 
 
      cout<<"buat nota lagi y/n? "; cin>>lanjut; 
 
     a=a+11; 
 
     } 
 
     while (lanjut=='y' or lanjut=='Y'); 
 
     system("pause"); 
 
     return 0; 
 
}

+0

あなたはあなたのコード内で多くのエラーを持っています。あなたの "for"サイクルの1つは何もしていません。 - > for(i = 0; i <31; i ++)には{}はありません – CyberClaw

答えて

0

私はfor(i=0; i<31; i++)後、あなたがharga[i=30]を使用していることがわかりますが、実際にいくつかの他の変数に属するメモリを指すだけharga[0]、...、harga[29]harga[30]なぜ、それがありますされています奇妙な行動はbである)。

(正直なところ、はるかに問題がforの本体と、例えば、ここにあるようです。)

関連する問題