รับค่าตัวเลขมาสี่ตัว หาตัวซ้ำทำไงครับ
ตั้งกระทู้ใหม่
แล้วมันจะแสดงผลประมาณ 1234 ไม่มีตัวเลขซ้ำกัน
2592 มีตัวเลข 2 ซ้ำกันประมาณนี่อ่ะครับ
ทำไงอ่ะ
2 ความคิดเห็น
อะไรคือ "ทำยังไง" คือต้องการจะทำอะไร?
เขียนเป็นโค๊ด ภาษา C อ่ะครับ
ง่ายสุดก็แยก4หลักไปใส่ตัวแปล4ตัวแล้วจับเช็คทีละคู่ ถ้าเจอซ้ำก็นับไป+1
ผมพอช่วยบอกโค๊ตได้ไหมครับ ลองหลายรอบแล้วคิดไม่ออกจริงๆTT
#include <stdio.h>
int main()
{
int a,b,c,d,n;
printf("Number(1000-9999): ");scanf("%d",&n);
a=n/1000;
b=n/100%10;
c=n/10%10;
d=n%10;
if(a!=b&&c&&d)
printf("All number Different\n");
else if((a==b)!=c&&d)
printf("%d is number repeatedly\n",a);
else if((a==c)!=b&&d)
printf("%d is number repeatedly\n",a);
else if((a==d)!=c&&b)
printf("%d is number repeatedly\n",a);
return 0;
}
อันนี้แค่ลองเทียบกับ a ก็ไม่ออกอ่ะครับ
ตอน รัน 1015 มันบอก All number Different
ตอน รัน 1150 มันออกมาได้อยู่
พยายามยามหลายครั้งไม่ได้สักทีครับTT
อย่างแรกที่ควรรู้ไว้ครับ "การเปรียบเทียบทำได้แค่ครั้งละ2ตัวเท่านั้น"
if(a!=b&&c&&d) ใช้ไม่ได้
ถ้าจะใช้ต้องเขียนเป็น if(a!=b && a!=c && a!=d)
แต่เงื่อนไขนี้ก็ยังไม่ถูก เงื่อนไขนี้ก็แค่เอาaไปเทียบทุกตัว แล้วb c d ไม่ต้องเทียบเหรอ อีกอย่างมันไม่สามารถเทียบให้จบในเงื่อนไขเดียวด้วย ตัวอย่างที่ยกมามันซ้ำแค่2ตัวเลยเห้นไม่ชัด แต่ถ้าสมมุติเป็น 1212 ล่ะ
a = 1
b = 2
c = 1
d = 2
มันก็จะซ้ำกัน2คู่ แปลว่ามันต้องพิมพ์2ครั้ง หมายความว่าใช้else ifไม่ได้ เพราะถ้าใช้else ifพอเข้าเงื่อนไขใดเงื่อนไขหนึ่งแล้วมันจะเมินเงื่อนไขอื่นๆหลังจากนั้นทันที
เพราะงั้นต้องใช้
if ........ {
}
if ........ {
}
ซ้อนไปหลายๆครั้งจนครบเงื่อนไข
ถ้าเป็นผม ผมจะใช้เงื่อนไข
if a = b or a = c or a = d >> write a
if b != a and (b = c or b = d) >> write b
if c != a and c != b and c = d >> write c
if a != b and a != c and a != d and b != c and b != d and c != d >> write All Diff
จะลองอีกรอบนะครับ
รายชื่อผู้ถูกใจความเห็นนี้ คน
แจ้งลบความคิดเห็น
คุณต้องการจะลบความคิดเห็นนี้หรือไม่ ?