เฉลยของเก่าก่อน

เฉลยโจทย์ข้อที่ 4 สมัครสมาชิก

#include [stdio.h] // change [ , ] to < , >

int main()
{
    char name[50];   // เก็บชื่อ เป็นข้อความจึงต้องประกาศเป็น string (char แบบหลาย
ช่อง)
    char sex;             // เก็บเพศ (m/f) เป็นอักษรตัวเดียว ประก
ศ char ธรรมดาพอ
    int age;               // เก็บอายุ จริงๆแล้วใช้ char ก็ได้ เพราะ char ก็เก็บเลขได้ แต่นิยม int
    printf("
What's your name : "); // คำถาม
    gets(name)        // รับค่าชื่อ+สกุล ซึ่งมีช่องว่างคั่นอยู่ จึงต้องใช้ gets
    printf("How old are you : ");
    scanf("%d",&age); // รับค่าอายุ เป็นตัวเลข
    printf("Male/Female (m/f) : ");
    scanf("%c",&sex);  // รับค่าเพศ เป็นอักษรตัวเดียว
    if(age>=18 && sex=='m') { /*ภาษาซีไม่ค่อยแคร์เรื่องเว้นวรรค เราจึงเว้นวรรคก่อน && ได้เพื่อความง่ายในการอ่าน ตรงนี้่เราจะเช็คว่า ageมากกว่าเท่ากับ18 และเพศเป็น m (ผมลืมบอกวิธีการเปรียบเทียบตัวแปร char กับตัวอักษรตอนที่บอกโจทย์ แต่เขียนเพิ่มในเอนทรี่ถัดมาแล้วครับ เอาเป็นว่าใครทำไม่ได้เพราะติดตรงนี้ ถือว่าให้ผ่านละกัน)*/
       
printf("Hi Mr.%s. your age is %d so you can emter to my website.",name,age); /* แสดงข้อความต้อนรับ */
     }
     else {
        printf("
Sorry, you can't enter this website"); //ถ้าเงื่อนไขเป็นเท็จ ก็บอกว่าเข้าไม่ได้
    }
    scanf(" ");
    return 0;
}

พอจะทำได้กันมั้ยครับ

ต่อไปเป็นข้อที่ 5

โจทยข้อที่ 5 ร้านเหลัาไฮเทค
ร้านเหล้าแห่งหนึ่งย่าน exteen town ถูกสร้างขึ้นอย่างไฮเทค คนที่จะเข้า ต้องเข้าทางประตูหน้า ส่วนคนจะออก ให้ออกจากวาร์ปที่ตั้งอยู่ภายในร้าน โดยประตูหน้าจะถูกล็อคอยู่ตลอดเวลา คนที่จะเข้าต้องกรอกชื่อ นามสกุล อายุและเพศ คนที่อายุต่ำกว่า 18 ปี จะห้ามเข้าร้านเด็ดขาด ถ้าตั้งแต่ 18 ปีขึ้นไป จะเข้าร้านได้ เพียงแต่ว่าจะมีกฎเพิ่มคือ ถ้าเป็นผู้หญิง ประตูไฮเทคจะนำเธอไปยังโซนของผู้หญิงที่มีไวน์รสเลิศและบรรยากาศที่ตกแต่งอย่างหรูหราโรแมนติก แต่ถ้าเป็นผู้ชาย ประตูไฮเทคจะนำเขาไปยังโซนสุภาพบุรุษที่เต็มไปด้วยเหล้าชั้นดีดีกรีถึงใจ บรรยากาศตกแต่งแบบตะวันตกยุด 70 และดนตรีสไตล์ country ที่ฟังแล้วให้บรรยากาศที่ยากจะลืมเลือน

งานของคุณ  คือเขียนโปรแกรมให้กับประตูไฮเทคเพื่อสอบถามข้อมูลและตรวจสอบเงื่อนไข ส่วนกลไกการส่งแขกไปยังโซนต่างๆจะเป็นหน้าที่ของวิศวกรท่านอื่น

โปรแกรมจะต้องรับค่า 1.ชื่อ นามสกุล  2.อายุ 3.เพศ

หากเป็นเด็กอายุต่ำกว่า 18  ปี ให้บอกว่า 
baby. go home now and tell your parent that you are good child

แต่ถ้าเป็นคนอายุ 18 ปีขึ้นไป ก็ให้เช็คต่อไปว่า

ถ้าเป็นผู้ชาย บอกว่า Hi Mr.ชื่อเขา welcome to exteen bar. enjoy with our spirits
ถเาเป็นผู้หญิง บอกว่า Hello Mrs.ชื่อเธอ welcome to exteen bar. enyou with our wine

***โจทย์ข้อนี้ให้คุณเขียน 2 ครั้ง
คร้ังแรกให้ลองเขียนแบบเช็คเงื่อนไข 2 ชั้น คือแบบ

if(..) {
    if(...) {..}
}
else {...}

หรือไม่ก็

if(...) {...}
else {
    if(...) {...}
}

ครั้งที่สอง ขเียนแบบชั้นเดียวตามปกติ แต่ให้ใช้ทั้ง  if , else if , else

รูปแบบการถามข้อมูลให้เหมือนกับโจทย์ข้อที่ 4

 

Comment



smilebig smileopen-mounthed smileconfused smilesad smileangry smiletonguequestionembarrassedsurprised smilewinkdouble winkcry

Tweet

กำลังจาเรียนวิทคอม มันต้องเจอไอ้พวกนี้ด้วยใช้มะ
ไม่น่า ...ไม่น่า...

#1 By ChotxE on 2009-05-18 20:52

มันเป็นไม้เบื่อไม้เมากันจริง ๆ ค่ะ

#2 By Daughter Of Sparda on 2009-05-19 18:45

วิทย์คอมโหดกว่านี้เยอะครับ - -"
ไม่เคยเรียน แต่เคยได้ยินมา

#3 By Mistertun on 2009-05-19 19:07

จริงคับ โครตโหด
ไม่ได้ขู่คนที่กำลังจะเรียนวิทคอมนะ
แต่ถ้ารู้แล้วก็จะรู้สึกมันกับการเขียนโปรแกรมหนุกดี

#4 By A_comsci (222.123.232.12) on 2009-09-24 18:59

ผมลองทำดูไม่แน่ใจว่าถูกหรือป่าว
ช่วยดูให้หน่อย
ถ้าผิดก็แนะนำอะไรดีให้ด้วยนะคับ

#include<stdio.h>
#include<conio.h>
void main()
{
char name[20], lastname[20], sex[1];
int age;
clrscr();
printf("Enter your name: ");
scanf("%s",name);
printf("Enter your last name: ");
scanf("%s",lastname);
printf("Enter your age: ");
scanf("%d",&age);
if(age>=18)
{
printf("Enter your sex (male = m, female = f): ");
scanf("%s",sex);
if(sex=="m")
printf("Hi Mr. %s %s welcome to exteen bar. enjoy with our spirits ",name, lastname);
else
printf("Hello Mrs. %s %s welcome to exteen bar. enyou with our wine",name, lastname);
}
else
{
printf("baby. go home now and tell your parent that you are good child");
}
getch();

}

#5 By A_comsci (222.123.232.12) on 2009-09-24 21:03

จริงๆๆครับ วิทคอม โหลดจริงๆ
ผมเรียนอยู่ ตอนนี้ในสมองมีแต่
1 กับ 0 แล้วก็ อินคูด if, else, printf, scanf,
int,char float, %d,%f,%c,\n,\t

เยอะแยะ 555+
question

#6 By Av (58.9.84.90) on 2009-10-05 17:25

ตอนนี้กำลังอยู่ค่ายโอลิมปิกคอม สมองมีแต่ include scanf array เต็มไปหมดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดดด
ขอบคุณสำหรับโจทย์ดีๆนะครับ

#8 By (112.142.224.9) on 2009-12-10 19:43