พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

nooktuck
PHP Newbie
PHP Newbie
Posts: 6
Joined: 31/01/2012 8:18 pm

พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by nooktuck » 31/01/2012 8:27 pm

พี่ครับผมเขียนC++คือมันเป็นโปรเจคเล็กๆอะครับ เค้าให้ทำเกี่ยวกับวิธีการSearchingแบบต่าง
Binary กับ Sequential อะครับ คือเราต้องรับค่ามา แล้วให้เราป้อนจำนวนตัวเลขว่ามีกี่จำนวน และ ค่าของตัวเลขว่ามีอะไรบ้าง และใช้วิธีSearchingทั้ง2แบบนี้อะครับ ตอนนี้เท่าที่ผมเขียนได้ ผมเขียนได้เท่านี้อะครับ แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ T^T

#include <stdio.h>
void main(){
int size;
int item;
int n;
int i,number;
char ch;

printf("Hi! I'm SEARCHING program \n");
printf("Please Specify List Size(<100):");
scanf("%d",&size);
for(i=0 ; i<size ;i++){
printf("Enter item %d:",i+1);
scanf("%d",&number);
}
printf("What do you want me to serve you? \n");
printf("S : Sequential Search \n");
printf("B : Binary Search \n");
printf("E : Exit \n");
printf("Please Enter Menu:");
scanf("%c",&ch)

}
int a[] = number;
int target;
int i;
int location;
printf("Please enter target:");
scanf("%d",&target);
i = 0;
while (i<size && a != target && a <target)
i++;
if (i<size)
if (a == target)
location = i;
else location = -1;
else location = -1;
printf("location is : %d",location);
}
// อันนี้คือโค้ดส่วนของการหาค่า Sequential
int a[]= number;
int target;
int i;
int j;
int m;
int location;
printf("Please enter target:");
scanf("%d",&target);
while(target != 0){
i = 0;
j = size;
while (i<j)
{
m=(i+j)/2;
if(target > a[m])
i = m+1;
else j = m;
}
// อันนี้คือโค้ดส่วนของการหาBinaryนะครับ

**สิ่งที่ผมต้องการให้ช่วยนะครับ ทำอย่างไรให้มันสามารถเลือกข้อที่พิมไว้ได้ เช่นเลือกBมันจะทำการหาคำตอบของ Binary ให้ , กด E จะออกโปรแกรมให้อะครับ

ขอบพระคุณมากนะครับ ขอบคุณจิงๆ T^T

nooktuck
PHP Newbie
PHP Newbie
Posts: 6
Joined: 31/01/2012 8:18 pm

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by nooktuck » 31/01/2012 8:35 pm

#include <stdio.h>
void main(){
int size;
int item;
int n;
int i,number;
char ch;

printf("Hi! I'm SEARCHING program \n");
printf("Please Specify List Size(<100):");
scanf("%d",&size);
for(i=0 ; i<size ;i++){
printf("Enter item %d:",i+1);
scanf("%d",&number);
}
printf("What do you want me to serve you? \n");
printf("S : Sequential Search \n");
printf("B : Binary Search \n");
printf("E : Exit \n");
printf("Please Enter Menu:");

}

คือส่วนนี้ผมว่าผมมาถูกทางแล้วนะ แต่ความต้องการผมมันกลับทำต่อไม่ได้ T^T

touleg
PHP Super Member
PHP Super Member
Posts: 480
Joined: 25/01/2010 11:57 pm
Contact:

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by touleg » 31/01/2012 9:10 pm

int a[]= number;

เขียนแบบนี้ไม่ได้ครับ

int a[จำนวนที่ต้องการ];

เวลาใส่ค่าให้ Array ต้องใช้ a[index] = ค่าที่ต้องการ เช่น
a[0] = 1;

nooktuck
PHP Newbie
PHP Newbie
Posts: 6
Joined: 31/01/2012 8:18 pm

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by nooktuck » 31/01/2012 9:40 pm

#include <stdio.h>
void main(){
int size;
int item;
int n;
int a[100];
int S;
int B;
int E;
int i,number,target,location,j,m;
int menu;


printf("Hi! I'm SEARCHING program \n");
printf("Please Specify List Size(<100):");
scanf("%d",&size);
for(i=0 ; i<size ;i++){
printf("Enter item %d:",i+1);
scanf("%d",&number);
}
printf("\n\n\nWhat do you want me to serve you? \n");
printf("S : Sequential Search \n");
printf("B : Binary Search \n");
printf("E : Exit \n");
printf("Please Enter Menu:");
scanf("%d",&menu);

if(menu==S){
printf("Please enter target:");
scanf("%d",&target);
i=0;
while (i<size && a != target && a<target)
i++;
if(i<size)
if (a==target)
location = i;
else location = -1;
printf("location is :%d",location);

}
}
else if(menu==B){ ***********
printf("Please enter target:");
scanf("%d",&target);
while(target != 0){
i = 0;
j = (size-1);
while(i<j)
{
m=(i+j)/2;
if(target>a[m])
i=m+1;
else j=m;
}
if (a==target)
location = i;
else location = -1;
printf("location is :%d",location);
}
}
else{
printf("ok");
}

ผมลองแก้ไปแก้มาเริ่มมาถูกทางแล้วครับ แต่ผมก็ติดตรงบรรทัดที่ดอกจันยาวๆไว้ จะแก้ไขไงดีอะครับ

touleg
PHP Super Member
PHP Super Member
Posts: 480
Joined: 25/01/2010 11:57 pm
Contact:

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by touleg » 01/02/2012 1:09 am

ติดยังไงอ่ะครับ

ถ้าเป็นเมนูผมแนะนำให้ใช้ switch case ดีกว่านะครับ

Code: Select all

switch(menu)
{
   case 1:  //การทำงานเมนู 1 
            break;
   case 2:  //การทำงานเมนู 2
            break;
   default: //การทำงานนอกเหนือจากเมนูที่เลือก จะไม่มีก็ได้
}
ถ้าเลือกช้อยเป็นตัวหนังสือก็ใช้แบบนี้

Code: Select all

char menu;
printf("\n\n\nWhat do you want me to serve you? \n");
printf("S : Sequential Search \n");
printf("B : Binary Search \n");
printf("E : Exit \n");
printf("Please Enter Menu:");
scanf("%c",&menu);
switch(menu)
{
   case 'S':  //การทำงานเมนู S
            break;
   case 'B':  //การทำงานเมนู B
            break;
   case 'E': //การทำงานเมนู E
            break;
   default: //การทำงานนอกเหนือจากเมนูที่เลือก จะไม่มีก็ได้
}

nooktuck
PHP Newbie
PHP Newbie
Posts: 6
Joined: 31/01/2012 8:18 pm

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by nooktuck » 01/02/2012 8:44 am

มันติดตรงที่ว่ามันรันแล้วตอนเลือกตัวเลือกแล้วมันไม่มีProcessใดๆขึ้นเลยอะครับ มันเด้งออกจากโปรแกรมเรยครับ

nooktuck
PHP Newbie
PHP Newbie
Posts: 6
Joined: 31/01/2012 8:18 pm

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by nooktuck » 01/02/2012 9:09 am

#include <stdio.h>

void main(){
int size;
int item;
int n;
int a[100];
char S;
char B;
char E;
int i,number,target,location,j,m;
char menu;


printf("Hi! I'm SEARCHING program \n");
printf("Please Specify List Size(<100):");
scanf("%d",&size);
for(i=0 ; i<size ;i++){
printf("Enter item %d:",i+1);
scanf("%d",&number);
}
printf("\n\n\nWhat do you want me to serve you? \n");
printf("S : Sequential Search \n");
printf("B : Binary Search \n");
printf("E : Exit \n");
printf("Please Enter Menu:");
scanf("%c",&menu);
}

switch(menu)
{

case 'S':
printf("Please enter target:");
scanf("%d",&target);
i=0;
while (i<size && a != target && a<target)
i++;
if(i<size)
if (a==target)
location = i;
else location = -1;
printf("location is :%d",&location);

break;



case 'B':
printf("Please enter target:");
scanf("%d",&target);
while(target != 0){
i = 0;
j = (size-1);
while(i<j)
{
m=(i+j)/2;
if(target>a[m])
i=m+1;
else j=m;
}
if (a==target)
location = i;
else location = -1;
printf("location is :%d",&location);

break;


case 'E':
exit(0);

break;

default:
printf("Sorry! I cant do binary search for you because your list is UNSORTED");
}
}


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

touleg
PHP Super Member
PHP Super Member
Posts: 480
Joined: 25/01/2010 11:57 pm
Contact:

Re: พี่ครับผมเขียนC++แล้วมันรันไม่ได้ครับ ช่วยตรวจโค้ดทีครับ ขอร้องT^T

Post by touleg » 01/02/2012 2:02 pm

Code: Select all

#include <stdio.h>
#include <conio.h>

void main(){
    int size;
    int item;
    int n;
    int a[100];
    int i,target,location,j,m;
    char menu;
    printf("Hi! I'm SEARCHING program \n");
    printf("Please Specify List Size(<100):");
    scanf("%d",&size);
    for(i=0 ; i<size ;i++){
        printf("Enter item %d:",i+1);
        scanf("%d",&a[i]); //เก็บค่าไว้ที่ a ไม่ใช่ number แล้วต้องเป็น Array ด้วย
    }
    printf("\nWhat do you want me to serve you? \n");
    printf("S : Sequential Search \n");
    printf("B : Binary Search \n");
    printf("E : Exit \n");
    printf("Please Enter Menu:");
    flushall();  //เคลียร์ข้อมูลใน buffer ออกให้หมด
    scanf("%c",&menu);

    switch(menu)
    {
        case 'S':
            printf("Please enter target:");
            scanf("%d",&target);
            //ตรงนี้ผมแก้ให้ใหม่ใช้ for แทน
            for(i=0;i<size;i++)
            {
                if (a[i]==target)
                {
                    location = i;
                    printf("location is :%d",location);
                    break;
                }
            }
            break;
        case 'B':
            printf("Please enter target:");
            scanf("%d",&target);
            //สมการผิดนะครับไปแก้มาใหม่
            break;
        case 'E':
            return;
        default:
            printf("\nSorry! I cant do binary search for you because your list is UNSORTED");
    }
    getch();
}
 

Post Reply

Return to “Programming - C/C++ & java & Python”

Who is online

Users browsing this forum: No registered users and 101 guests