เรียนภาษาC อาจารย์ให้การบ้านมาโค้ดมัน run ไม่ได้ ช่วยหน่อยครับผม

เริ่มโดย superspeedhost, 06 มกราคม 2014, 12:49:42

หัวข้อก่อนหน้า - หัวข้อถัดไป

0 สมาชิก และ 1 ผู้มาเยือน กำลังดูหัวข้อนี้

superspeedhost

--

superspeedhost

สวัสดีครับ ขอรบกวนอีกครั้งครับ
ถ้าผมต้องการทำให้มีเงื่อนไขแบบนี้ ผมตั้งแก้โค้ด หรือเพิ่มตรงใหนบ้างครับ


มีเงื่อนไข 0-15000 ไม่เสียภาษี
15001-50000 เสีย 3%
50000 -ขึ้นไปเสีย 5%





# include <conio.h>
# include <stdio.h>
void main()
{
int max=5,row=0,i=0;
char id[10],name[20];
float SAL;
clrscr();
gotoxy(35,1); printf ("INPUT DATA");
gotoxy(30,3); printf ("ID      =    ");
gotoxy(30,4); printf ("NAME    =    ");
gotoxy(30,5); printf ("SALARY  =    ");

gotoxy(40,3); scanf ("%s",id);
gotoxy(40,4); scanf ("%s",name);
gotoxy(40,5); scanf ("%f",&SAL);

for (i=1; i<80; i++)
{
gotoxy(i,6); printf("=");
}
printf ("  NO       ID         NAME                   SALARY ");

for (i=1; i<80; i++)
{
gotoxy(i,8); printf("-");
}

for (row=1; row<max; row++)
{
  gotoxy(1,8+row);   printf ("%2d",row);
  gotoxy(11,8+row);  printf ("%s",id);
  gotoxy(22,8+row);  printf ("%s",name);
  gotoxy(43,8+row);  printf ("%10.2f",SAL);
}

}
--

teerdear1

ผมแนะนำให้ศึกษาเรื่อง if else ละกันครับ

แล้วก็ลองเขียนดู ถ้าไม่ได้ให้เอามาถามในบอร์ด ในสิ่งที่คุณได้ทดลองไปแล้ว คุณได้อะไรบ้าง แล้วติดอะไร

แบบนี้จะได้ประโยชน์กว่าเนาะ

superspeedhost

ครับผม  ขอบคุณที่แนะนำครับ
เดี๋ยวผมขอศึกษา ตามที่คุณแนะนำก่อนดีกว่าครับ
ถ้าไม่ได้ หรือติดปัญหาอะไร ค่อยถามใหม่
ขอบคุณครับผม
--

superspeedhost

สวัสดีครับ
หลังจากไปศึกษา เรื่อง if มา
ผมก้ได้เขียนโค้ดแบบนี้ และได้ผลลัพออกมาแบบในรูปนี้ครับ


หมายถึงว่ากรอกข้อมูลลงไป1ครั้ง ผลลัพมันออกมาเหมือนกันทุกบรรทัดเลย ทั้ง9บรรทัดน่ะครับ


คือผมอยากจะทราบว่า
ในรูปด้านล่างนี้เขาเขียนโค้ดอย่างไรถึงได้ผลลัพออกมา 4ครั้ง ไม่เหมือนกันเลย
จึงอยากจะขอแนวทางในการเขียนด้วยครับ
ขอบคุณครับผม




นี่คือโค้ดที่ผมเขียนครับ

# include <conio.h>
# include <stdio.h>
void main()
{
int max=10,row=0,i=0;
char id[10],name[20];
float SAL, vat, net;

clrscr();
gotoxy(35,1); printf ("INPUT DATA");
gotoxy(30,3); printf ("ID      =    ");
gotoxy(30,4); printf ("NAME    =    ");
gotoxy(30,5); printf ("SALARY  =    ");

gotoxy(40,3); scanf ("%s",id);
gotoxy(40,4); scanf ("%s",name);
gotoxy(40,5); scanf ("%f",&SAL);

for (i=1; i<80; i++)
{
gotoxy(i,6); printf("=");
}
printf ("  NO       ID         NAME          SALARY            VAT               NET");

for (i=1; i<80; i++)
{
gotoxy(i,8); printf("-");
}

for (row=1; row<max; row++)
{
   gotoxy(1,8+row);   printf ("%2d",row);
   gotoxy(11,8+row);  printf ("%s",id);

   gotoxy(22,8+row);  printf ("%s",name);
   gotoxy(34,8+row);  printf ("%10.2f",SAL);


    if (SAL>50000)
        vat=SAL*5/100;
     else if ((SAL>15000)&&(SAL<=50000))
vat=SAL*3/100;
     else if ((SAL>0)&&(SAL<=15000))
vat=SAL*0/100;
     else
vat=0;
     net=SAL-vat;


    gotoxy(50,8+row); printf("%10.2f",vat);
    gotoxy(70,8+row); printf("%10.2f",net);



}





}
--

Ozone


gotoxy(35,1); printf ("INPUT DATA");
gotoxy(30,3); printf ("ID      =    ");
gotoxy(30,4); printf ("NAME    =    ");
gotoxy(30,5); printf ("SALARY  =    ");

gotoxy(40,3); scanf ("%s",id);
gotoxy(40,4); scanf ("%s",name);
gotoxy(40,5); scanf ("%f",&SAL);


การรับค่าพวกนี้ต้องอยู่ใน loop ครับ ไม่งั้นมันก็จะประมวณค่าเดิมไปจนจบ

ควรเพิ่มตัวแปรว่าต้องการารับค่ากี่ ID เพื่อกำหนดจำนวน loop สูงสุดหรือจำนวน ID สูงสุด

เห็นแล้วคิดหนังสือ C ของ อาจารย์ธันวา ศรีประมงเลย เล่มนั้นแจ๋งมาก

teerdear1

อ้างถึงจาก: Ozone ใน 07 มกราคม 2014, 15:23:30

gotoxy(35,1); printf ("INPUT DATA");
gotoxy(30,3); printf ("ID      =    ");
gotoxy(30,4); printf ("NAME    =    ");
gotoxy(30,5); printf ("SALARY  =    ");

gotoxy(40,3); scanf ("%s",id);
gotoxy(40,4); scanf ("%s",name);
gotoxy(40,5); scanf ("%f",&SAL);


การรับค่าพวกนี้ต้องอยู่ใน loop ครับ ไม่งั้นมันก็จะประมวณค่าเดิมไปจนจบ

ควรเพิ่มตัวแปรว่าต้องการารับค่ากี่ ID เพื่อกำหนดจำนวน loop สูงสุดหรือจำนวน ID สูงสุด

เห็นแล้วคิดหนังสือ C ของ อาจารย์ธันวา ศรีประมงเลย เล่มนั้นแจ๋งมาก

เล่มนั้นเจ๋งจิงครับ แต่ไม่ค่อยเหมาะสำหรับผู้เริ่มต้นอะครับตาม คหส อะคับ T_T

superspeedhost

ช่วยเรียบเรียงโค้ดให้ผมหน่อยครับ
หลังจากที่ผมมั่วๆมา ก็ได้แบบในรูปครับ

ตรง ID1  มันมีโค้ดอะไรโผล่มาครับ
ช่วยแก้ไขหน่อยครับ





# include <conio.h>
# include <stdio.h>
void main()
{
int max=7,row=0,i=0;
char id[10],name[20];
float SAL, vat, net;
clrscr();
gotoxy(35,1); printf ("INPUT DATA");
gotoxy(30,3); printf ("ID      =    ");
gotoxy(30,4); printf ("NAME    =    ");
gotoxy(30,5); printf ("SALARY  =    ");
for (i=1; i<80; i++)
{gotoxy(i,6); printf("="); }
printf ("  NO       ID         NAME          SALARY            VAT               NET");
for (i=1; i<80; i++)
{gotoxy(i,8); printf("-");}
for (row=1; row<max; row++)
{
   gotoxy(1,8+row);   printf ("%2d",row);
   gotoxy(11,8+row);  printf ("%s",id);
   gotoxy(22,8+row);  printf ("%s",name);
   gotoxy(34,8+row);  printf ("%10.2f",SAL);
    if (SAL>50000)
    vat=SAL*5/100;
     else if ((SAL>15000)&&(SAL<=50000))
vat=SAL*3/100;
     else if ((SAL>0)&&(SAL<=15000))
vat=SAL*0/100;
     else
vat=0;
    net=SAL-vat;
   gotoxy(50,8+row); printf("%10.2f",vat);
   gotoxy(70,8+row); printf("%10.2f",net);
   gotoxy(41,3); scanf ("%s",id);
   gotoxy(41,4); scanf ("%s",name);
   gotoxy(41,5); scanf ("%f",&SAL);
}
getch();
}
--

emukidz

จาก code สั่ง printf id ก่อน แล้วค่อย scanf id แบบนี้ บรรทัดแรก มันก็ไม่มีค่าอะไรในตัวแปร id อ่ะครับ เมื่อสั่ง printf id มันถึงแสดงผลเป็นตัวยึกยือ ออกมา
[direct=http://www.barekadin.com]เสื้อผ้าแฟชั่นราคาถูก[/direct]
[direct=http://www.tshirtstreetwear.com]เสื้อยืดแฟชั่น[/direct]

G1

อ้างถึงจาก: emukidz ใน 07 มกราคม 2014, 18:01:09
จาก code สั่ง printf id ก่อน แล้วค่อย scanf id แบบนี้ บรรทัดแรก มันก็ไม่มีค่าอะไรในตัวแปร id อ่ะครับ เมื่อสั่ง printf id มันถึงแสดงผลเป็นตัวยึกยือ ออกมา
ลองทำตามท่านนี้ดูเลยครับ ลอง scanf ก่อนแล้วค่อย printf เพราะถ้า printf ก่อน เริ่มต้นมันจะไม่มีค่าอะไรเลย ต้องรับค่าด้วย scanf ก่อน

เห็น code พวกนี้แล้วยิ้มๆ เลย ไม่ได้แตะมานานแล้ว สงสัยต้องกลับไปเคาะสนิมซะหน่อย  :-[
[direct=https://goo.gl/9jmoQX]RDP Windows สำหรับอัพโหลดไฟล์ เร็วมากๆ เริ่มที่ต้นที่ $3.99 / เดือน[/direct]
[direct=https://bit.ly/3js5C4w]ค่าธรรมเนียมลดลง 10% เมื่อเทรด Cryptocurrency bitcoin กับ Binance[/direct]