Кто-нибудь может мне помочь? Почему этот код является ошибкой :(
#include <stdio.h> #include <conio.h> #define MAX 6 typedef struct{ int data[MAX]; int head; int tail; } Queue; Queue antrian; void Create(){ antrian.head=antrian.tail=-1; } int IsEmpty(){ if(antrian.tail==-1) return 1; else return 0; } int IsFull(){ if (antrian.tail==MAX-1) return 1; else return 0; } void Enqueue(int data){ if(IsEmpty()==1){ antrian.head=antrian.tail=0; antrian.data[antrian.tail]=data; printf("\t Silahkan Masuk !! \n",antrian.data[antrian.tail]); void Tampil(); { if(IsEmpty()==0){ for(int i=antrian.head;i<=antrian.tail;i++){ printf("%d ",antrian.data[i]); } }else printf("data kosong!"); }; }else if(IsFull()==0){ antrian.tail++; antrian.data[antrian.tail]=data; printf("\t Silahkan Masuk !! \n",antrian.data[antrian.tail]); } } int Dequeue(){ int i; int e = antrian.data[antrian.head]; for(i=antrian.head;i<=antrian.tail-1;i++){ antrian.data[i]= antrian.data[i+1]; } antrian.tail--; return e; } void clear(){ antrian.head=antrian.tail=-1; printf("Data Clear"); } void Tampil() { int jum; jum=0; if(IsEmpty()==0){ for(int i=antrian.head;i<=antrian.tail;i++){ jum++; printf("\n| %d |",antrian.data[i]);} printf("\njumlah yang mengantri saat ini %i orang",jum); }else printf("Data Kosong!\n");} //sebagai nasabah void nasabah() { int data; char lagi; do{ clrscr(); printf("\t+=================================+\n"); printf("\t| menu nasabah |\n"); printf("\t+=================================|\n"); printf("\t| tekan (a) untuk masukkan data |\n"); printf("\t| tekan (b) melihat data antrian |\n"); printf("\t| tekan (x) keluar |\n"); printf("\t+=================================|\n"); printf("pilihan : "); scanf("%c",&lagi); if((lagi=='x') || (lagi=='X')) { printf("terima kasih\n"); break; } switch(lagi) { case 'a': printf("masukkan data: "); scanf("%d",&data); Enqueue(data); break; case 'b': Tampil(); break; }getch(); } while(lagi !='x'); getche(); } //memasukkan password void password() { char nama[20], id[10], password[4]; int i; { clrscr(); atas: clrscr(); printf("\t\t+===============================================+\n"); printf("\t\t| S E L A M A T D A T A N G |\n"); printf("\t\t| jika anda admin dari teller |\n"); printf("\t\t|Silahkan masukkan User Name & 3 digit Password |\n"); printf("\t\t+===============================================+\n"); printf("\t\t UserName : ") ; cin>>nama; printf("\t\t No. Identitas : "); cin>>id; printf("\t\t Password : ") ; for(i=0; i<=2; i++) {password[i]=getche(); printf("\bX"); } printf("\n\t\t+=============================================+\n"); if (strcmp(password,"aaa")==0) { printf("\n\n\t\t Anda Masuk Sebagai TEllER\n"); printf("\t\t User : %s \n",nama); printf("\t\t No. Identitas : %s\n",id); printf("\n\n\t\tTekan Sembarang tombol untuk ke menu teller..!"); goto bawah; } else { printf("\t\t\tpassword salah bro...hahaaa\n"); printf("\t\tketik sembarang tombol untuk kembali ke menu: "); goto atas; } bawah: getch(); } } void teller() {char menu; password(); do{ clrscr(); printf("\t\t+=================================+\n"); printf("\t\t| menu pilihan untuk TELLER |\n"); printf("\t\t+=================================+\n"); printf("\t\t| tekan (a) untuk menghapus data |\n"); printf("\t\t| tekan (b) melihat data antrian |\n"); printf("\t\t| tekan (c) untuk mereset |\n"); printf("\t\t| tekan (x) untuk keluar |\n"); printf("\t\t+=================================+\n"); printf("pilihan : "); scanf("%c",&menu); if((menu=='x') || (menu=='X')) { printf("terima kasih\n"); break; } switch(menu) { case 'a': printf("Elemen yang keluar : %d",Dequeue()); break; case 'b': Tampil(); break; case 'c': clear(); break; }getch(); } while(menu !='x'); } void main(){ char pil; Create(); do{ clrscr(); fflush(stdin); printf("\t\t+=====================================+\n"); printf("\t\t| Bank Republik Indonesia|\n"); printf("\t\t| jalan Teuku Umar |\n"); printf("\t\t| Bali |\n"); printf("\t\t+=====================================+\n"); printf("\t\t| tekan (n) untuk Nasabah |\n"); printf("\t\t| tekan (t) untuk Teller |\n"); printf("\t\t| tekan (k) keluar dari program |\n"); printf("\t\t+=====================================+\n"); printf("pilihan : "); scanf("%c",&pil); if((pil=='k') || (pil=='k')) { printf("terima kasih"); break; } switch(pil) { case 'n': nasabah(); break; case 't': teller(); break; } }while(pil!='k'); }
Что я уже пробовал:
кто-нибудь может мне помочь ? Почему этот код является ошибкой ?
0x01AA
А ошибка есть?
Ошибка компиляции или вы не получаете ожидаемого результата?
aris mihadjami
когда я выполняю ошибку, возникает "cin >> name;" эта ошибка
0x01AA
И что это за сообщение об ошибке?
Делает ли mabye ошибку только в том случае, если вы вводите более 20 символов? Если да попробуйте это cin.getline(name, sizeof(name));
aris mihadjami
Когда я хочу скомпилировать n run, возникает ошибка в разделе "cin>>name;"
0x01AA
Я сдаюсь, извини...
aris mihadjami
хорошо :) но спасибо Вам за помощь :)
0x01AA
Добро пожаловать :)
Рад видеть, что вы получили ответ ;)
Richard MacCutchan
Вы не можете использовать имя массива в операторе cin. Ваш код очень запутан, и смешивание cin/cout с printf/scanf делает его еще хуже. Выберите C или C++, а не оба варианта.
aris mihadjami
да, я его починил, спасибо за совет :)