http://www.hackerschool.org/HS_Boards/zboard.php?id=QNA_programming&no=1329 [º¹»ç]
#include<stdio.h>
#include<string.h>
int main()
{
int x; //½ÊÁø¼ö ÇÑ ÀÚ¸® ¼ö (´õÇØÁö´Â ¼ö)
int y; //½ÊÁø¼ö ÇÑ ÀÚ¸® ¼ö (´õÇÏ´Â ¼ö)
int s1 = 0; //´õÇØÁö´Â Å« ¼öÀÇ ±æÀÌ
int s2 = 0; //´õÇÏ´Â Å« ¼öÀÇ ±æÀÌ
int s =0; //µÑ °¡¿îµ¥ ±ä ÂÊÀÇ ±æÀÌ
int i, j; //À妽º
char num1[13]="0"; //´õÇØÁö´Â ¼ö¸¦ ¹®ÀÚ¿·Î ÀÔ·Â
char num2[13]="0"; //´õÇÏ´Â ¼ö¸¦ ¹®ÀÚ¿·Î ÀÔ·Â
char ans[14]="0"; //´ä
int d; //ÇÑÀÚ¸® µ¡¼ÀÀÇ °á°ú
int c = 0; //Carry(¿Ã¸²¼ö)
//////////////////////////////////
//Âü ¹¹°¡ À̸®µµ ²¿À̳Ä~~°íÃijª º¸ÀÚ ¤Ð.¤Ð ¿À±â·Î!!
//º¯¼ö µÎ°³´õ ÁöÁ¤(Á¾·á ¹× ¼±ÅÃ)
//////////////////////////////////
int choose;
int exit;
x = 0;
y = 0;
while(exit!=1) //while¹® ¿ä±â¿¡ ³ÖÀ¸´Ï±ñ Á» Á¾·á°¡ ±ò²ûÇϳß~~
{
printf("\nÃÖ´ë 12ÀÚ¸® ¿¬»ê°¡´É ÇÑ °è»ê±â ÇÁ·Î±×·¥.\n");
/////////////////////////////////////
//¿©±ä ¿¬»ê¼±Åà ÀÎÅÍÆäÀ̽º ±¸ÇöºÎ~~
/////////////////////////////////////
printf("[¿¬»ê¹æ½Ä ¼±Åà : ]\n");
printf("1.Mum :\n");
printf("2.Sub :\n");
printf("3.Mul :\n");
printf("4.Div :\n");
printf("5.Exit :\n");
scanf("%d",&choose);
printf("\nù¹ø° ¼ýÀÚ? : ");
scanf("%s", num1); // ù¹ø° ¼ýÀÚ¸¦ ¹Þ±¸~~
for(i=0; num1[i]; i++) //¹è¿¾È¿¡ µé¾î°£ ¼ýÀÚ¸¸Å 1¾¿ Áõ°¡~
{
s1++; //for¹®ÀÇ ³»¿ë°ú °°°í~~
}
//printf("%d\n", s1); //Test
fflush(stdin);
printf("\nµÎ¹ø° ¼ýÀÚ? : ");
scanf("%s", num2);
for(i=0; num2[i]; i++)
{
s2++; //µÎ¹ø° ¹®ÀÚ¿ ¹Þ¾Æ¼ ¹è¿¿¡ ±æÀ̸¸Å 1¾¿ Áõ°¡~¾ÕÀ̶û °°°í~
}
//printf("%d\n", s2); //Test
if (s1 > s2) //¿©±â¼ ºÎÅÍ Ã¹¹ø° ¼ýÀÚ¶û µÎ¹ø° ¼ýÀÚÀÇ ±æÀ̸¦ ºñ±³ ÆÇ´Ü~¿©±âµµ ÀÌÇØ
{
s = s1; //s1 ÀÌ s2º¸´Ù Å©¸é s1À» È£Ãâ
}
else
{
s = s2; //s2 °¡ s1º¸´Ù Å©¸é s2¸¦ È£Ãâ
}
// fflush(stdin);
///////////////////////////////////
//ù¹ø° ¼ýÀÚ¿¡ ´ëÇÑ ³¡¼ö ¸ÂÃß±â
///////////////////////////////////
if(s1 > s2) // ³¡¼ö ¸ÂÃß±â
{
//printf("ù¹ø° ¼ýÀÚ°¡ ±é´Ï´Ù.\n"); //Test
num2[s1] = '\0';
for(i = s2, j = s1 - s2 -1; i; i--, j--) //µÚ¿¡ -1Àº Äɸ®¶§¹®Àϱî Á¶±Ý ÀÌÇØ ¾È°¡³ß~
{
num2[s2+j] = num2[i-1];
}
for(i = 0, j = s1 - s2; j; i++, j--)
{
num2[i] = '0';
}
}
//printf("%s\n", num2); //Test
/////////////////////////////////////
//µÎ¹ø° ¼ýÀÚ¿¡ ´ëÇÑ ³¡¼ö ¸ÂÃß±â
/////////////////////////////////////
if(s1 < s2) // ³¡¼ö ¸ÂÃß±â
{
//printf("µÎ¹ø° ¼ýÀÚ°¡ ±é´Ï´Ù.\n"); //Test
num1[s2] = '\0';
for(i = s1, j = s2 - s1 -1; i; i--, j--)
{
num1[s1+j] = num1[i-1];
}
for(i = 0, j = s2 - s1; j; i++, j--)
{
num1[i] = '0';
}
}
//printf("%s\n", num1); // Test
//printf("%d\n", '0'); // Test (¹®ÀÚ 0Àº ASCII Code 48)
///////////////////////////////////////////////////////////////
//¿©±ä ¿¬»ê ¹æ½Ä ¼±ÅÃÇϱâ À§ÇÑ ¼±Åù® !! ¿©±â ±îÁø ÀÌÇØÇß°í!!
/////////////////////////////////////////////////////////////////
switch(choose)
{
case 1: //´õÇϱ⠺κÐ
for(i = s - 1; i >= 0; i-- )
{
//printf("%d\n", i);//Test
x = ((int) num1[i]) - 48;
y = ((int) num2[i]) - 48;
// printf("%d, %d\n", x, y); //Test
d = x + y + c; //¿ä ºÎºÐÀÌ ´õÇϱ⸦ À§ÇÑ ¿¬»ê±¸Á¶ x´Â ù¹ø° ¼ýÀÚ y´Â µÎ¹ø° ¼ýÀÚ c´Â ij¸®°ª~
if(d >= 10)
{
d = d - 10;
c = 1;
}
else
{
c = 0;
}
ans[i+1] = (char) (d + 48);
//printf("%c", ans[s+1]);//Test
}
printf("´äÀº %sÀÔ´Ï´Ù.\n", ans);
printf("°è¼Ó ÇϽ÷Á¸é ¾Æ¹«Å°³ª ´·¯ÁÖ¼¼¿ä...!!\n");
break;
case 2: //»©±â ºÎºÐ
for(i = s - 1; i >= 0; i-- )
{
//printf("%d\n", i);//Test
x = ((int) num1[i]) - 48;
y = ((int) num2[i]) - 48;
// printf("%d, %d\n", x, y); //Test
d = x - y + c;
if(d >= 10)
{
d = d - 10;
c = 1;
}
else
{
c = 0;
}
ans[i+1] = (char) (d + 48);
//printf("%c", ans[s+1]);//Test
}
printf("´äÀº %sÀÔ´Ï´Ù.\n", ans);
printf("°è¼Ó ÇϽ÷Á¸é ¾Æ¹«Å°³ª ´·¯ÁÖ¼¼¿ä...!!\n");
break;
case 3: //°öÇϱ⠺κÐ~¾Æ Àá¿Â´Ù À̽𣿡 ¹¹ÇÏ´Â ÁþÀΰ¡ ºÒ½ÖŸ ¹Î¹ð ¤Ð.¤Ð
for(i = s - 1; i >= 0; i-- )
{
//printf("%d\n", i);//Test
x = ((int) num1[i]) - 48;
y = ((int) num2[i]) - 48;
// printf("%d, %d\n", x, y); //Test
d = x * y + c;
if(d >= 10)
{
d = d - 10;
c = 1;
}
else
{
c = 0;
}
ans[i+1] = (char) (d + 48);
//printf("%c", ans[s+1]);//Test
}
printf("´äÀº %sÀÔ´Ï´Ù.\n", ans);
printf("°è¼Ó ÇϽ÷Á¸é ¾Æ¹«Å°³ª ´·¯ÁÖ¼¼¿ä...!!\n");
break;
case 4: //³ª´©±â ºÎºÐ
for(i = s - 1; i >= 0; i-- )
{
//printf("%d\n", i);//Test
x = ((int) num1[i]) - 48;
y = ((int) num2[i]) - 48;
// printf("%d, %d\n", x, y); //Test
d = x / y;// + c;
if(d >= 10)
{
d = d - 10;
c = 1;
}
else
{
c = 0;
}
ans[i+1] = (char) (d + 48);
//printf("%c", ans[s+1]);//Test
}
printf("´äÀº %sÀÔ´Ï´Ù.\n", ans);
printf("°è¼Ó ÇϽ÷Á¸é ¾Æ¹«Å°³ª ´·¯ÁÖ¼¼¿ä...!!\n");
break;
case 5:
printf("°è»ê±â Á¾·á[1.YES] [2. NO]\n");
scanf("%d",&exit);
break;
default:
printf("À߸ø ´©¸£¼Ì½À´Ï´Ù.\n");
break;
}
}
}
ÀÌ·¸°Ô Çߴµ¥ ÀÏ´ÜÀº ÀüüÀûÀ¸·Î ¹®Á¦°¡ ÀÖ´Â°Í °°¾Æ¿ä...±Ùµ¥ ¿©±â¼ ÄÉÀ̽º¹®¿¡¼ »çÄ¢¿¬»êÀ» ¾î¶»°Ô ³Ö¾î¾ß ÇÒÁö ¸ð¸£°Ú¾î¿ä...ÀԷ°ª¿¡ ¹öÆÛµµ ºñ¿öº¸·Á±¸ fflush(stdin)À» ³Ö¾ú´Âµ¥ µÎ¹ø° °è»êºÎÅÍ´Â ¾È¸ÔÈ÷±¸¿ä ¤Ð.¤Ð Á»µµ¿ÍÁÖ¼¼¿ä`~ |
Hit : 2484 Date : 2007/04/21 02:00
|