ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programming[[ถามการบ้าน]] C ช่วยวิเคราะห์โจทย์หน่อยครับ ผมตีโจทย์ไม่แตก
หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: [[ถามการบ้าน]] C ช่วยวิเคราะห์โจทย์หน่อยครับ ผมตีโจทย์ไม่แตก  (อ่าน 1556 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
atiwat001
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 64
ออฟไลน์ ออฟไลน์

กระทู้: 1,464



ดูรายละเอียด
« เมื่อ: 12 กันยายน 2011, 22:03:40 »

ข้อ 5 ให้เขียนโปรแกรมคำนวณหายอดขายต่ำสุดของพนักงานขายจำนวน 10 คน


ผมเข้าใจว่า ให้กรอก 10 จำนวน แล้วหาว่า 10 จำนวนนั้น อะไรต่ำสุด หรือเปล่า



แล้วโปรแกรมควรเป็นยังไงครับ ตัวแปรใช้อเร แล้ววิธีคิดหล่ะครับ ต่ำสุดใช้วิธีคิดยังไงครับ
บันทึกการเข้า
SEO_POWER_HACK
Newbie
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 16



ดูรายละเอียด
« ตอบ #1 เมื่อ: 12 กันยายน 2011, 22:07:08 »

 Tongue ตายเลย ไม่ได้จับมาเกือบ 3 ปีแล้ว ลืมหมดแล้วอ่าคับ
บันทึกการเข้า

SEO POWER HACK  Tongue
bonshington
ก๊วนเสียว
*

พลังน้ำใจ: 47
ออฟไลน์ ออฟไลน์

กระทู้: 376



ดูรายละเอียด
« ตอบ #2 เมื่อ: 12 กันยายน 2011, 22:12:39 »

int[] numbers = ...

int min = 2000000000;
for(int i = 0; i < length(numbers); i++){
  if(numbers < min)
    min = numbers;
}
บันทึกการเข้า
medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 414



ดูรายละเอียด
« ตอบ #3 เมื่อ: 12 กันยายน 2011, 22:16:12 »

ก็ถ้าโจทย์คือทั้งหมดตามที่ท่านพิมพ์มาก็ไม่น่ามีอะไรซับซ้อนครับ
โค๊ด:
int cir[10]; // ยอดขายของพนักงานทั้ง 10 คน
int n,i,prev; // i ไว้ loop, n ไว้เก็บว่าเป็นพนักงานคนที่เท่าไหร่
int lowest; // ต่ำสุด

for(i=0;i<10;i++){
   scanf("%d",&cir[i]);
   if(i!=0){
      if(cir[i]<cir[i-1]){
         n=i;
         lowest=cir[i];
      }
   }
}

printf("Lowest of circulation is %d of Mr/Ms %d\n",lowest,n);

น่าจะตามนี้ครับ ยังไม่ได้ทดลองนะแต่ไม่น่าผิด
บันทึกการเข้า

medzmay
ก๊วนเสียว
*

พลังน้ำใจ: 35
ออฟไลน์ ออฟไลน์

กระทู้: 414



ดูรายละเอียด
« ตอบ #4 เมื่อ: 12 กันยายน 2011, 22:19:35 »

ก็ถ้าโจทย์คือทั้งหมดตามที่ท่านพิมพ์มาก็ไม่น่ามีอะไรซับซ้อนครับ
โค๊ด:
int cir[10]; // ยอดขายของพนักงานทั้ง 10 คน
int n,i,prev; // i ไว้ loop, n ไว้เก็บว่าเป็นพนักงานคนที่เท่าไหร่
int lowest; // ต่ำสุด

for(i=0;i<10;i++){
   scanf("%d",&cir[i]);
   if(i!=0){
      if(cir[i]<lowest){
         n=i;
         lowest=cir[i];
      }
   }else{
      lowest=cir[i];
   }
}

printf("Lowest of circulation is %d of Mr/Ms %d\n",lowest,n);

น่าจะตามนี้ครับ ยังไม่ได้ทดลองนะแต่ไม่น่าผิด

ขอโทษครับแก้เป็นตามนี้  wanwan017
บันทึกการเข้า

oDarkIceo
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 276
ออฟไลน์ ออฟไลน์

กระทู้: 1,059



ดูรายละเอียด
« ตอบ #5 เมื่อ: 13 กันยายน 2011, 00:32:18 »

แนะนำำ
ขั้นที่ 1

ต้องรับค่าข้อมูล 10 ค่า นั้นคือ ยอดพนักงานขายจำนวน 10 คน
ตรงนี้แนะนำให้ใช้การวนลูป ไม่ว่าจะเป็น for, while, etc.

int z, value[10];
for(z=0 ; z<10 ; z++)
{
    printf("Enter value[%d]: ", z+1);
    scanf("%d", &value[z]);
}


ขั้นที่ 2
คิด algorithm ที่ใช้ในการหาค่าต่ำสุด
ตรงนี้แนะนำให้ใช้การวนลูปอีกเช่นกัน

int min;
min=value[0];
for(z=1 ; z<10 ; z++)
{
    if(value[z] < min)
        min = value[z];
}


ขั้นที่ 3
แสดงค่าที่น้อยที่สุด
printf("Value min = %d\n", min);

ps. zzzzz

« แก้ไขครั้งสุดท้าย: 13 กันยายน 2011, 01:18:19 โดย oDarkIceo » บันทึกการเข้า
doramonman
คนรักเสียว
*

พลังน้ำใจ: 11
ออฟไลน์ ออฟไลน์

กระทู้: 174



ดูรายละเอียด
« ตอบ #6 เมื่อ: 13 กันยายน 2011, 01:14:57 »

เยี่ยมเลยครับ

ตอนผมเรียนเสียดายที่ยังไม่มีบอร์ดนี้ ไม่งั้นผมไม่ต้องทำการบ้านเลยนะเนี่ย 55555  wanwan020 wanwan020
บันทึกการเข้า

yok38_ns
ก๊วนเสียว
*

พลังน้ำใจ: 29
ออฟไลน์ ออฟไลน์

กระทู้: 418



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 13 กันยายน 2011, 01:23:41 »

เจ๋งสุดยอดครับ ไทยเสียว
ไว้มีการบ้านจะมาถามบ้างครับ wanwan004
บันทึกการเข้า

ขายส่งอุปกรณ์ปลูกต้นไม้ไฟปลูกกัญชา ลดราคาทุกรุ่นเต็นท์ปลูกกัญชา จะช่วยให้คุณประหยัดค่าไฟกระถาง air pot ราคาถูก
mSkyline
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 131
ออฟไลน์ ออฟไลน์

กระทู้: 1,472



ดูรายละเอียด
« ตอบ #8 เมื่อ: 13 กันยายน 2011, 01:28:24 »

ใช้ เทคนิค bubble sort ครับ

ถ้ามีค่าน้อย ให้ลอยขึ้น ถ้ามีค่ามาก ก็ให้มันลอยลง
บันทึกการเข้า

AnyWhereToThai รับขนสินค้าจาก US UK JP KR CN กลับไทย
https://www.facebook.com/AnyWhereToThai
bonshington
ก๊วนเสียว
*

พลังน้ำใจ: 47
ออฟไลน์ ออฟไลน์

กระทู้: 376



ดูรายละเอียด
« ตอบ #9 เมื่อ: 13 กันยายน 2011, 01:31:28 »

ถ้าเป็น c สมัยใหม่

typedef struct sales_person{
 
  const void*name;
  decimal sold;

}sales_person;

sales_person createSalesPerson(void*name, decimal sold){
  sales_person person = new sales_person{
    person.name = name,
    person.sold = sold
  };

  return person;
}

sales_person min(sales_person salesList[]){

  sales_person minimum = NULL;

  for(int i = 0; i < 10; i++){

    sales_person current = salesList;

    if(minimum == NULL || minimum.sold > current.sold)
      minimum = &current;
  }

  return minimum;
}

void get_input(sales_person list[]){
... loop เอาเอง
}

int main(){
 
  sales_person list[10]; // malloc(&list, 10* sizeof(sales_person)) จำ malloc arrayไม่ได้
 
  get_input(list);

  sales_person worstSale = min(list);

  printf("%@ : %d", worstSale.name, &worstSale.sold);

  free(list);
}

ปล หัดไว้นะคับ c แบบนี้เขียนใน iphone
« แก้ไขครั้งสุดท้าย: 13 กันยายน 2011, 01:32:04 โดย bonshington » บันทึกการเข้า
หน้า: [1]   ขึ้นบน
พิมพ์