-
คืออย่างนี้ครับผมเขียนโค้ดโปรแกรมแปลงปี พ.ศ.เป็นปี ค.ศ. ดังตัวอย่างครับ
---------------------------------------------------------------------
#include <stdio.h> //B.E. คือ พ.ศ.
void main() //C.E. คือ ค.ศ.
{
int BE;
int CE;
printf("Enter B.E.(Buddhist Era) : ");
scanf("%d\n", &BE);
CE = BE - 543;
printf("C.E.(Christain Era) is %d\n");
}
---------------------------------------------------------------------
เจอปัญญหาที่ว่า
เมื่อรันโปรแกรมออกมา
แล้วใส่ ปี พ.ศ. เข้าไปแล้วEnter
มันกลับไม่แปลงปี ค.ศ. ออกมาให้
แต่กลับเป็น ให้พิมพ์ บรรทัดให้ม่ออกไปเรื่อย ๆ
เป็นเพราะอะไรครับ?
(ผมเป็นมือใหม่หัดเขียนนะครับ)
ขอบคุณที่แนะนำครับ
-
[hide=1][code]#include <stdio.h>
void main()
{
-
scanf("%d\n", &BE);
ต้องมี \n ด้วยเหรอ ครับ ...ผมก็ไม่ค่อยได้ใช้นานแล้ว <_<
printf("C.E.(Christain Era) is %d\n");
แล้วไม่เอาค่าของ CE มาแสดงผมเหรอครับ :D
is %d\n",CE); อ่ะ
-
plz use code systax <code></code> http://citec.us/forum/style_images/s...mages/code.gif to improve readability
Note: change < to [, > to ]
-
#include <stdio.h> //B.E. คือ พ.ศ.
/*1.*/#include<conio.h>
void main() //C.E. คือ ค.ศ. //2.เอา void ออกครับ แก้เป็น >> main()
{
int BE;
int CE;
printf("Enter B.E.(Buddhist Era) : ");
scanf("%d\n", &BE);//ตรงนี้เอา \n ออกนะครับ เป็น >> scanf("%d",&BE);
CE = BE - 543;
printf("C.E.(Christain Era) is %d\n");//ตรงนี้ลองแก้เป็น >> printf("C.E.(Christain Era) is %d\n",CE);
/*3.*/getch();
}
พิมพ์ให้ใหม่ก็ตามนี้เลยครับ ก็อปไป Compile ดูครับ
#include<stdio.h>
#include<conio.h>
main()
{
int BE,CE;
printf("Enter B.E.(Buddhist Era) : ");
scanf("%d",&BE);
CE=BE-543;
printf("C.E.(Christain Era) is %d\n",CE);
getch();
}
ปล.ใช้โปรแกรมไรเขียนอ่ะครับ ถ้า Dev C ก็ใส่ 3ข้อที่ผมใส่เพิ่มไปด้วยนะครับ
สอบถามได้คับ msn:spiritmts@gmail.com
-
ก็คุณเล่นสั่ง printf ออกมาเฉยๆไม่ได้ ชี้ว่า %d ของคุณคือตัวอะไรอ่ะคับ ง่ายๆก็แค่เอาตัวแปลมาใส่เพิ่มก็จบแล้วคับ
เรื่องเล็กๆน้อยๆอย่างงี๊แหละปัญหาใหญ่ เพราะเราชอบมองข้าม (ผมเป็นบ่อยคับ ฮาๆๆๆ)
-
#include <stdio.h> //B.E. ¤×Í ¾.È.
#include <conio.h>
void main() //C.E. ¤×Í ¤.È.
{
int BE=0;
int CE=0;
printf("Enter B.E.(Buddhist Era) : ");
scanf("%d",&BE);
CE=BE-543;
printf("C.E.(Christain Era) is %d",CE);
หรือ printf("C.E.(Christain Era) is %d",BE-543); /*ให้มันบวกตรงนี้เลยก็ได้ครับ*/
getch();
}
ใส่ตัวแปร ที่ต้องการแสดงด้วยครับ
-
ลองกันอีกแบบไหมครับ หาทางที่เขียนโปรแกรมทำงานแบบเดียวกันนี้ให้ใช้บรรทัดน้อยที่สุดครับ
-
#include <stdio.h>
main() {
int BE;
printf("Enter B.E.(Buddhist Era) : ");
scanf("%d",&BE);
printf("\nC.E.(Christain Era) is %d",BE-543);
}
เขียนแค่นี้ก็น่าจะพอแล้วน่ะครับ เพราะแค่รับค่า พ.ศ. แล้วแสดงค่าเป็น ค.ศ. (เอาค่าที่ Input มาลบเท่านั้นเอง)
Ps. 1. #include<conio.h> ไม่ต้อง include เพราะโปรแกรมนี้แค่รับค่าแสดงค่าอย่างเดียว
2. ประกาศตัวแปรตัวเดียวก็พอแล้วครับ เพราะไม่ได้มีการนำค่า ค.ศ. ไปคำนวณอะไรต่อ แค่เอามาแสดงผลเฉยๆ
เลยเอามาลบแล้ว output ออกมาได้เลย
3. getch(); >>> จะใส่หรือไม่ใส่ก็ได้ยังไงผลลัพธ์ก็ถูกอยู่ดี ที่ใส่ก็เพื่อเป็นการให้หน้าจอแสดงผลลัพธ์ค้างไว้
เพราะคอมฯ จะรอการป้อนคำสั่งทำให้โปรแกรมหยุดแสดง Output ค้างไว้