블루네쩜넷http://www.bluene.net/blog/2023-12-02T13:39:45+09:00Textcube 1.10.7 : Tempo primo포인터와 Const블루네쩜넷http://www.bluene.net/blog/4902010-01-03T14:13:28+09:002009-01-05T20:08:07+09:00<P><FONT style="BACKGROUND-COLOR: #ece8e1">포인터 변수를 정의 할때는 const를 최대2개까지 포함 할수 있음.(포인터 변수자체에 보관된 정보, 포인터가 가리키는변수에 보관된 정보)<BR /><BR /><STRONG>Const 속성이 전혀 적용되지 않은포인터</STRONG> <PRE class="brush: cpp" name="code">int i1 = 10;
int i2 = 20;
int* p = &i1;
p = &i2; //OK
*p = 30; //OK</PRE>05 : 포인터 변수에 변수에 값을 대입(const 여부에 따라서 오류가 날수 있음)<BR />06 : 포인터가 가르키는 변수에 값을 대입(const 여부에 따라서 오류가 날수 있음)<BR /><BR /><STRONG>포인터가 가르키는 변수가 const 인 경우</STRONG> <PRE class="brush: cpp" name="code">int i1 = 10;
int i2 = 20;
const int* p = &i1;
p = &i2; //OK
*p = 30; //Fail</PRE>p가 </FONT>가르키는 변수는 const int 타입이라는 의미(=06번째 줄처럼 p가 가르키는 변수의 값을 변경하는 것을 허용하지 않음)<BR /><BR /><STRONG>포인터 자체가 Const 인 경우</STRONG><PRE class="brush: cpp">int i1 = 10;
int i2 = 20;
int* const p = &i1;
p = &i2; //Fail
*p = 30; //OK</PRE>int 타입을 가리키는 p는 const 속성을 갖는다라는 의미(=05번째 줄 처럼 p의 값을 바꾸는 행위는 허용하지 않음, p라는 포인터 변수는 const지만 p가 가르키는 변수는 const가 아니므로 포인터가 가르키는 변수의 값을 변경하는 것은 가능.)<BR /><BR /><STRONG>포인터를 가르키는 변수도 const 포인터 변수도 const<BR /></STRONG><PRE class="brush: cpp">int i1 = 10;
int i2 = 20;
const int* const p = &i1;
p = &i2; //Fail
*p = 30; //Fail</PRE>포인터 p와 p가 가르키는 변수까지도 const(따라서 05,06 Line 모두 Error)<p><strong><a href="http://www.bluene.net/blog/490?commentInput=true#entry490WriteComment">댓글 쓰기</a></strong></p>[소켓프로그래밍] echo서버 (windows)블루네쩜넷http://www.bluene.net/blog/4852010-01-03T14:13:54+09:002008-12-22T18:15:42+09:00<PRE class="brush: cpp">#include <STDIO.H>
#include <STDLIB.H>
#include <STRING.H>
#include <WINSOCK2.H>
#define BUFSIZE 1024
void ErrorHandling(char *message){
fputs(message, stderr);
fputc('\n',stderr);
exit(1);
}
int main(int argc, char **argv){
WSADATA wsaData;
SOCKET hServSock;
SOCKET hClntSock;
char message[BUFSIZE];
int strlen;
SOCKADDR_IN servAddr;
SOCKADDR_IN clntAddr;
int clntAddrSize;
if(argc!=2){
printf("Usage : %s <PORT>\n",argv[0]);
exit(1);
}
/*윈속 초기화*/
if(WSAStartup(MAKEWORD(2,2),&wsaData) !=0)
ErrorHandling("WSAStartup Error!");
hServSock=socket(PF_INET, SOCK_STREAM, 0);
if(hServSock == INVALID_SOCKET)
ErrorHandling("socket Error!!");
memset(&servAddr, 0, sizeof(servAddr));
servAddr.sin_family=AF_INET;
servAddr.sin_addr.s_addr=htonl(INADDR_ANY);
servAddr.sin_port=htons(atoi(argv[1]));
if(bind(hServSock, (SOCKADDR *)&servAddr, sizeof(servAddr))==SOCKET_ERROR)
ErrorHandling("bind() Error!!");
if(listen(hServSock, 5)==SOCKET_ERROR)
ErrorHandling("listen() Error!!");
clntAddrSize=sizeof(clntAddr);
hClntSock=accept(hServSock, (SOCKADDR *) &clntAddr, &clntAddrSize);
if(hClntSock==INVALID_SOCKET)
ErrorHandling("accept() Error!!");
while((strlen=recv(hClntSock, message, BUFSIZE, 0)) !=0){
send(hClntSock, message, strlen, 0);
}
closesocket(hClntSock);
WSACleanup();
return 0;
}
</PRE>소스 설명은 추후에<p><strong><a href="http://www.bluene.net/blog/485?commentInput=true#entry485WriteComment">댓글 쓰기</a></strong></p>[소켓 프로그래밍] File 열기블루네쩜넷http://www.bluene.net/blog/4652008-01-09T00:01:04+09:002008-01-09T00:00:27+09:00<DIV style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #ffdaed">#include <fcnt.h><br />#include <sys/types.h><br />#include <sys/stat.h><br /><br />int open(const char *path, int flag);<br />
<DIV style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #faffa9"><STRONG>성공시 파일디스크립터, 실패시 -1 리턴</STRONG></DIV></DIV><br /><br />.path : 파일의 경로를 포함한 이름을 나타내는 문자열의 포인터<br />.flag : 파일 Open Mode<br /><br /><File Open Mode><br />O_CREAT : 필요한 경우 파일을 생성<br />O_TRUNC : 존재하던 데이터를 모두 삭제<br />O_APPEND : 존재하던 데이터를 보존하고 디에 이어서 저장<br />O_RDONLY : 읽기 전용 Mode로 파일 Open<br />O_WRONLY : 쓰기 전용 Mode로 파일 Open<br />O_RDWR : 읽기 쓰기 겸용 모드로 파일을 Open<p><strong><a href="http://www.bluene.net/blog/465?commentInput=true#entry465WriteComment">댓글 쓰기</a></strong></p>malloc 함수와 calloc 함수의 차이블루네쩜넷http://www.bluene.net/blog/4632007-12-09T22:18:19+09:002007-12-09T22:17:59+09:00<STRONG>malloc 함수와 calloc 함수의 차이<br /></STRONG><br />1) malloc함수는 size 바이트 만큼 메모리를 할당하여 줍니다. <br /> 또한, 새로 할당된 영역의 내용이 무엇이 될지는 알 수 없습니다. <br /> 단지 size바이트 만큼만 메모리가 잡힙니다.<br />
<P> <STRONG>[함수 원형]</STRONG> void *malloc(size_t size);<br /><br />2) calloc 함수는 원소의 갯수가 nelem이고, 각 원소의 크기가 elsize 바이트인 <br /> 배열에 필요한 메모리를 할당해 줍니다. <br /> 또한, calloc에 의해 할당받은 메모리 영역은 0으로 초기화가 이루어집니다. <br /> 이것이 malloc과의 가장 큰 차이입니다.<br /><br /> <STRONG>[함수 원형]</STRONG> void *calloc(size_t nelem, size_t elsize);</P><p><strong><a href="http://www.bluene.net/blog/463?commentInput=true#entry463WriteComment">댓글 쓰기</a></strong></p>C언어 기초 예제(2)블루네쩜넷http://www.bluene.net/blog/3852008-12-21T01:23:18+09:002007-05-19T21:30:58+09:004.숫자 x 를 입력받아 입력받은 x가 0보다 작으면 “양수를 입력하세요”를 출력하고, 0보다 큰 경우에 짝수이면 “짝수”, 홀수이면 “홀수”를 출력하는 프로그램을 작성하시오.<BR><BR>예) 숫자를 입력하세요 : 24<BR> 24는 짝수입니다.<BR><BR>
<p id="more385_0" class="moreless_fold"><span style="cursor: pointer;" onclick="toggleMoreLess(this, '385_0','정답보기','닫기'); return false;">정답보기</span></p><div id="content385_0" class="moreless_content" style="display: none;">#include <stdio.h><BR><BR>int main(void)<BR>{<BR> int x;<BR> <BR> printf("숫자를 입력하세요 : ");<BR> scanf("%d", &x);<BR> <BR> if(x < 0){<BR> printf("양수를 입력하세요");<BR> }elseif(x % 2 == 0){<BR> printf("%d 는 짝수입니다.",x);<BR> }else{<BR> printf("%d 는 홀수 입니다.",x);<BR><BR>return 0;<BR>}</div><BR>5. 1보다 큰 정수를 입력받아, 1부터 입력받은 숫자까지의 짝수의 합을 구하는 프로그램을 작성하시오.<BR><BR>예) 숫자를 입력하세요 : <STRONG>5<BR></STRONG> 1부터 5까지의 짝수의 합은 6 입니다.<BR><BR>
<p id="more385_1" class="moreless_fold"><span style="cursor: pointer;" onclick="toggleMoreLess(this, '385_1','정답보기','닫기'); return false;">정답보기</span></p><div id="content385_1" class="moreless_content" style="display: none;">#include <stdio.h><STDIO.H><BR><BR>int main(void){<BR> int x,i,sum=0;<BR><BR> printf("숫자를 입력하세요 : ");<BR> scanf("%d",&x);<BR><BR>if(x<0){<BR> prntf("양수를 입력하세요");<BR>}else{<BR> for(i=1;i<=x;i++){<BR> if(i%2 == 0){<BR> sum+=i;<BR> } //if문 close<BR> } //for문 close<BR> printf("1부터 %d까지 짝수의 합은 %d입니다.",x,sum);<BR>}//if문 close<BR><BR>return 0;<BR>}</div><p><strong><a href="http://www.bluene.net/blog/385?commentInput=true#entry385WriteComment">댓글 쓰기</a></strong></p>C프로그램의 구성 요소블루네쩜넷http://www.bluene.net/blog/3772007-05-14T18:19:09+09:002007-05-14T18:19:06+09:00<P><B>C프로그램의 구성 요소</B></P>
<P><B>1) 예약어(Keyword)</B></P>
<P>C언어에서 사용자가 변수명이나 식별자 등으로 쓰면 안되는 것들이 있음. <U>변수는 기억장소를 의미</U> 상수 값을 잠시 기억시켜서 그 안의 값들을 변경 시킬때 이용.<br />사용자에 의해서 변수나 이름으로 사용 할 수 없는 것을 예약어(Keyword)라고 함.<br />예약어는 말 그대로 C언어 자체에서 그 기능과 사용 용도가 <B>미리 예약되어 있다</B>는 것을 뜻함</P>
<P>예약어 종류</P>
<P>㉠ 전처리문 : #include<stdio.h>,#if, #else, #define ....<br />㉡ 표준함수명 : printf, scanf, gets, puts, ...<br />㉢ 데이더 형 정의 : char, int, long, float, double, short, typedef, const, extern<br />㉣ 연산자 : sizeof<br />㉤ 제어문 : if, else, for, do, while, switch, case, continue, break, default, return ...<br /></P>
<P>전처리문은 #을 같이써야만 함.(그렇지 않을 경우에는 변수로 인식[예 : #include])<br />그리고 표준 함수를 정의해 놓은 표준헤더 파일은 <stdio.h>와 같이 써야 함. <>를 생략하면 변수처럼 취급.</P>
<P><B>2) 식별자(Identifier)</B></P>
<P>식별자 또는 명칭은 사용자가 변수 이름, 함수이름, 배열이름, 구조체 이름, 공요체 이름, 데이터 형의 제정의(typedef 연산자) 이름 등을 지정할 때 사용.<br />식별자는 예약어를 제외한 이름으로 정하면 되나, 다음과 같은 제약 사항이 있음.</P>
<P>㉠ 영문자, 숫자, 밑줄(_)로 사용하여 지정<br />㉡ 숫자로 시작해서는 안됨<br />㉢ 대문자와 소문자는 구별된다.<br />㉣ 예약어를 명칭으로 사용해서는 안됨<br />㉤ 식별자 중간에 공백이 있으면 안됨<br />㉥ 특수문자를 식별자로 사용하면 안됨<br />㉦ 최대 32자 까지 작성</P>
<P><B>3) 연산자 (Operator)</B></P>
<P>연산자는 연산을 수행할 때 사용하는데 C언어에서는 다른 언어와는 달리 풍부한 연산자를 제공. C프로그램을 효율적으로 작성할 수 있는 환경을 제공.</P>
<P><B>4) 상수 (Constant)</B></P>
<P>상수는 변하지 않는 값. 상수라고 하면 숫자만 생각하기 쉬우나, C언어에서는 문자 상수도 지원. 문자이지만 내부적으로 ASCII코드 값으로 처리.<br />또한 문자열 상수도 제공.(원래는 문자열 상수라는 말은 없지만 문자들의 나열이라고 해서 한 덩어리로 제어할 수 있는 환경을 지원)</P>
<P><B>5) 구분기호(Punctuator)</B></P>
<P>구분기호는 각 항목을 나타내는 기호.</P>
<P>㉠ ; (세미콜론) - 실행문의 끝에 반드시 쓴다. (예 : char ch;)<br />㉡ : (콜론) - switch case문, goto문에 쓴다. (예: exit:, switch~ case식 :)<br />㉢ { } - 함수의 시작과 끝에 씀. 또는 제어문과 루프문, 기타 한단위가 복수개의 실행문으로 이루어져 있을 때 (예: main(){ ..... })<br />㉣ [ ] - 배열을 선언할 때 슨다. (예 : char str[]);<br />㉤ ( ) - 함수명, 연산, 제어문, 루프문 , 형변환 연산자로 사용 (예: main(), while(), if(), (char)3.14;)<br />㉥ '(작은 따옴표) - 한문자의 상수를 나타낸다. (예: char a='A';, char b='b';)<br />㉦ "(큰따옴표) - 문자열을 나타낸다 (예: char name[] = "블루네군;")<br />㉧ < > - 외부 파일을 편입할 때 사용(헤더 파일) (예 : #include <stdio.h></P>
<P><B>6) 공백 문자 (White Character)</B></P>
<P>공백문자는 스페이스, 탭, 엔터키를 말함, 이 세가지는 공백문자라고 해서 C언어에서는 공백 문자를 여러번 반복해서 사용해도 됨. 모든 C코드를 한 라인에 모두 써도 되고, 보기 좋게 공백 문자를 이용하여 각 요소를 구분지어 사용할 수 도 있음. 일반적으로는 한 라인에 복잡하게 사용하지 않고 각 요소를 구분지어서 사용</P>
<P><B>7) 주석 (Comment)</B></P>
<P>주석은 설명문으로 주석을 달아야 할 실행문의 시작에 <B>/*</B> 끝에 <B>*/</B> 을 기입하면 됩니다. 컴파일러가 주석문을 만났을 경우 컴파일러는 번역을 하지 않고 넘어 갑니다.</P><p><strong><a href="http://www.bluene.net/blog/377?commentInput=true#entry377WriteComment">댓글 쓰기</a></strong></p>C 프로그램의 기본 구조블루네쩜넷http://www.bluene.net/blog/3712007-05-13T16:57:46+09:002007-05-13T16:57:43+09:00<P><B>C프로그램의 기본 골격<br /> </P>
<P align=left><div class="imageblock center" style="text-align: center; clear: both;"><img src="http://www.bluene.net/blog/attach/1/1101401312.gif" width="300" height="464" alt="사용자 삽입 이미지" /></div></B></P>
<P><B>프로그램 구성 요소</B></P>
<P><B>1) 전처리문</B></P>
<P>전처리문은 소스 파일이 컴파일 되기전에 먼처 처리되는 문장.<br />컴파일이 되기 전에 일련의 코드들이 프로그램 첫 부분에 추가되어 컴파일 된다는 뜻.<br /><br />전처리문 기술 예</P>
<P>● #include 문 : 헤더 파일을 편입시킴<br /> 예) #include <stdio.h><br /><br />● define문 : 문자열을 상수 값으로 정의.(매크로 정의라고도 함.)<br /> 예) #define PI 3.14</P>
<P>● 그 외 #if, #ifdef, #ifndef, #else 등등..</P><br />
<P><STRONG>2)사용자 함수, 외부 변수 선언<br /></STRONG>사용자가 직접만든 함수를 컴파일러가 인식 할 수 있도록 이곳에다 그 함수를 기술해야만 컴파일러는 에러를 내지 않고 무사히 컴파일 할 수 있음. 또한 외부 변수도 여기에다 기술, 외부 변수는 프로그램 전체에 대하여 영향을 받는 변수</P>
<P>내부 변수는 그 함수 내에서만 영향을 받는 변수, 컴파일러에게 이러이러한 것들을 사용하겠다 라고 알려주는 역할을 선언(Declaration)이라고 함. 사용자가 만든 함수나 변수들은 반드시 선언을 해야만 에러가 나지 않음.</P>
<P><STRONG>3) main 함수<br /></STRONG>main 함수는 C 프로그램에 핵, C 프로그램은 main 함수가 반드시 있어야 하며 전체 프로그램에서 단 한 개의 main함수가 존재. main함수 안에 사용자 정의 함수, 내부 변수들이 올 수 있음. 사용자 저으이 함수는 main함수 안에 선언하기도 하지만, 일반적으로 전처리문 다음, 메인 함수 앞에 선언.</P>
<P><STRONG>4) 실행문<br /></STRONG>실행문은 컴파일러가 번역되는 문장, 실행문에는 변수, 상수, 제어문, 반복문, 수식 등으로 이루어지며 실행문 끝에는 반드시 ';'(세미콜론)으로 마무리 해야 함(선언문도 마찬가지). 만약 ';' 으로 마무리 하지 않은 경우에는 컴파일러는 그 문장이 이어진다고 생각하고 특정 부분에 가서는 에러 메시지를 띄움.<br />초보자들이 범하기 쉬운 실수 중 하나.</P>
<P><STRONG>5) 함수(인수1, 인수2)</STRONG></P>
<P>선언했던 사용자 함수의 실제 내용을 기술, =>(함수의 정의 (Definition)<br />C언어는 함수의 언어, C프로그램은 수백 개의 표준 함수와 사용자가 직접 만든 사용자 정의함수로 구성 됨. 사용자 정의 함수는 말 그대로 사용자가 필요에 의해 직접 만들어 쓰는 함수이고, 표준함수는 C언어에서 제공해주는 함수.<br /><br />인수1, 인수2 는 함수가 데리고 다니는 자식들(자식이 없는 부모가 있드시, 함수에도 인자가 없을 수 있음.)<br />사용자 정의 함수는 꼭 필요한 항목은 아님.</P><p><strong><a href="http://www.bluene.net/blog/371?commentInput=true#entry371WriteComment">댓글 쓰기</a></strong></p>저급언어(Low-Level Language)와 고급언어(High-Level Language)블루네쩜넷http://www.bluene.net/blog/3702007-05-13T20:33:10+09:002007-05-13T16:29:08+09:00<P><B>저급언어(Low-Level Language)와 고급언어(High-Level Language)</B></P>
<P><B>저급언어(Low-Level Language)</B></P>
<P>저급언어는 컴퓨터 하드웨어와 더 가까운 언어로서 기계어(Machine Language)와 어셈블리 언어(Assembly Language)가 있음.<br />전류가 흐르는 상태인 ON은 숫자 1, 전류가 흐르지 않는 상태인 OFF는 숫자 0으로 표시, 이렇게 0,1로만 나타내는 언어를 기계어(Machine Language)라고 함.<br />컴퓨터는 0,1로만 인식, 기계어를 사람이 알 수 있는 형식으로 만들 필요가 있었는데 이렇게 기계어를 문자적으로 표현 한 것이 바로 어셈블리어(Assembly Language)<br /><br />어셈블리어는 숫자 0, 1로 이루어진 명령어를 ADD, MOV와 같은 문자로 표현한 언어. 어셈블리어를 컴퓨터가 알 수 있는 기계어로 변역해 주어야 하는 과정이 필요한데, 이러한 과정을 어셈블(Assemble)한다 라고 하고 어셈블리어를 기계어로 번역하는 주체는 어셈블러(Assembler)라고 하는 언어 번역기가 담당.</P>
<P><B>고급언어(High-Level Language)</B></P>
<P>고급언어는 저급언어와 반대로 사용자와 더 가까운 언어. (기계어, 어셈블리어 이외의 모든 언어가 고급언어에 속함)<br />고급언어도 저급언어와 마찬가지로 컴퓨터가 직접 인식하지 못하여 기계어로 번역을 번역을 해주어야 하는데 고급언어에서는 이러한 과정을 컴파일(Compile)한다라고 하고 기계어로 번역해주는 주체를 컴파일러(Complier)라고 함.<br /><br />저급언어와 고급언어의 가장 큰 차이점은 그 언어가 사용자 위주의 언어냐, 하드웨어 위주의 언어냐에 따라 다름.<br />저급언어는 하드웨어와 밀접한 관계가 있기 때문에 하드웨어를 직접 제어할 수 있는 반면에 전문가가 아닌 이상은 다루기가 어려움.<br />반면, 고급언어는 사용자와 밀접한 관계가 있기 때문에 일반 사용자가 다루기가 쉬운 반면 하드웨어를 직접 제어해야 할 경우엔 한계가 있음.</P><p><strong><a href="http://www.bluene.net/blog/370?commentInput=true#entry370WriteComment">댓글 쓰기</a></strong></p>C언어의 특징블루네쩜넷http://www.bluene.net/blog/3692007-05-13T16:17:34+09:002007-05-13T16:17:31+09:00<STRONG>C언어의 특징<br /></STRONG><br />C언어는 사용자 중심의 고급언어(High-Level Language)이면서 하드웨어를 직접 제어할 수 있는 저급언어(Low-Level Language)의 특징을 모두 가지고 있음<br /><br />C언어는 이식성이 뛰어남.<br />이식성이라는 말은 어느 한 컴퓨터 시스템에서만 사용되는 것이 아니라 다양한 운영체제와 다양한 하드웨어에서도 큰 수정없이 사용할 수 있다는 것.<br />C프로그램이 약간의 수정만 거치게 되면 도스나 윈도우에서도 사용할 수 있음.<br /><br />C언어는 다양한 제어구조를 지원<br />if-else, switch, whie, do-whie, for, break 등과 같은 제어문은 제공, 프로그램을 좀더 구조적으로 만들 수 있음.<br /><br />C언어는 함수(function)의 언어<br />함수라는 것은 '어떤 기능을 수행하는 프로그램 단위', C언어는 기본적인 데이터 타입, 구조체, 유니온 그리고 포인터 값을 반환하는 다양한 함수들이 있음.(C언어에서 제공하는 함수는 수백개가 넘기 때문에 어떤 곳에 어떠한 함수를 사용하느냐가 중요한 문제가 될 수 있음)<br /><br />C언어는 auto, static, external과 같은 몇 가지 유용한 기억 부류를 제공<br />즉, 지역 변수냐, 전역변수냐에 따라서 프로그램의 효율을 극대화,<br /><br />C언어는 프로젝트 파일이라는 것을 제공,<br />큰 덩어리의 프로그램을 한 파일에서 한꺼번에 컴파일하는 것이 아니라 모듈별로 각각 분리하여 저장하여 컴파일을 거쳐서 최종적으로는 하나의 실행파일을 만들 수 있음.<p><strong><a href="http://www.bluene.net/blog/369?commentInput=true#entry369WriteComment">댓글 쓰기</a></strong></p>C언어 기초 예제(1)블루네쩜넷http://www.bluene.net/blog/3662007-05-09T23:09:59+09:002007-05-09T23:02:44+09:00<P>1. 국어, 영어 점수를 입력받아 총점을 구하는 프로그램을 작성하시오.<br /><br />예) 국어 점수는? <STRONG>90<br /> </STRONG>영어 점수는? <STRONG>80<br /> <br /> </STRONG>합은 <STRONG>170</STRONG>입니다.<br /></P>
<p id="more366_0" class="moreless_fold"><span style="cursor: pointer;" onclick="toggleMoreLess(this, '366_0','소스 보기','닫기'); return false;">소스 보기</span></p><div id="content366_0" class="moreless_content" style="display: none;">#include <stdio.h><br /><br />int main(void){<br /> int kor;<br /> int eng;<br /> int tot;<br /><br /> printf("국어 점수는 ? ");<br /> scanf("%d", &kor);<br /><br /> printf("영어 점수는 ?");<br /> scanf("%d", &eng);<br /><br /> tot = kor+eng; //tot 변수에 kor와 eng에 입력된 값을 대입<br /><br /> printf("합은 %d 입니다.",tot);<br /><br /> return 0;<br />}<br /></div><br />2. 자신의 이름을 입력하여 아래 실행화면과 같이 출력하는 프로그램을 작성하시오.<br /><br />예) 당신의 이름은 무엇입니까? <STRONG>블루네군<br /> 블루네군</STRONG>님 반갑습니다.<br /><br />
<p id="more366_1" class="moreless_fold"><span style="cursor: pointer;" onclick="toggleMoreLess(this, '366_1','소스 보기','닫기'); return false;">소스 보기</span></p><div id="content366_1" class="moreless_content" style="display: none;">#include <stdio.h><br /><br />int main(void){<br /> char name[10];<br /> <br /> printf("당신의 이름은 무엇입니까? ");<br /> scanf("%s",name); //또는 gets(name);<br /><br /> printf("%s 님 반갑습니다.",name);<br /><br /> return 0;<br />}</div><br />3.점수를 입력받아 점수가 80점 이상이면 “합격”을 80점 미만이면 “불합격”을 출력하는 프로그램을 작성하시오.<br /><br />예1) 점수를 입력하세요 : <STRONG>80</STRONG><br /> <STRONG>합격<br /> <br /></STRONG>예2) 점수를 입력하세요 : <STRONG>79<br /> 불합격<br /><br /></STRONG>
<p id="more366_2" class="moreless_fold"><span style="cursor: pointer;" onclick="toggleMoreLess(this, '366_2','소스 보기','닫기'); return false;">소스 보기</span></p><div id="content366_2" class="moreless_content" style="display: none;">#include <stdio.h><br /><br />int main(void){<br /> int score;<br /><br /> printf("점수를 입력하세요 : ");<br /> scanf("%d",&score);<br /><br /> if(score>=80){<br /> printf("합격\n");<br /> }else{<br /> printf("불합격\n");<br />}<br /><br />return 0;<br />}</div><br />나머지 예제들은 나중에..-_- 갑자기 몸이 안좋아져서 ㅋ<p><strong><a href="http://www.bluene.net/blog/366?commentInput=true#entry366WriteComment">댓글 쓰기</a></strong></p>C언어 성적처리..(순위 포함)블루네쩜넷http://www.bluene.net/blog/2082009-01-07T09:28:16+09:002005-10-20T15:47:22+09:00<pre class="cpp" name="code">
#include <stdio.h>
#define snum 5
int tot[snum]={0}, rank[snum]={0};
int mrank()
{
int i,j;
rank[0] = 1;
for ( i = 1; i < snum; i++ )
rank[i] = 1;
for ( i = 1; i < snum; i++ ){
for( j=0; j < i; j++ ){
if ( tot[i] > tot[j] ){
//rank[i] = rank[j];
rank[j]++;
} else {
rank[i]++;
}
}
}
return 0;
}
void main( ){
int kuk[snum], eng[snum], mat[snum], k;
float ava[snum]={0};
char name[snum][10];
int i=0;
for(i=0; i < snum; i++) {
printf("성명:");
scanf("%s", name[i]);
printf("국어:");
scanf("%d", &kuk[i]);
printf("영어:");
scanf("%d", &eng[i]);
printf("수학:");
scanf("%d", &mat[i]);
tot[i] = kuk[i] + eng[i] + mat[i];
ava[i] = tot[i] / 3.0f; } k = mrank();
printf("----------------------------------------------------------------------");
printf("성명 국어 영어 수학 총점 평균 순위");
printf("----------------------------------------------------------------------");
for(i=0; i < snum; i++) {
printf("%-10s %-3d %-3d %-3d %-3d %-7.2f %d", name[i], kuk[i], eng[i],mat[i],tot[i], ava[i],rank[i]);
}
printf("----------------------------------------------------------------------");
}
</pre><p><strong><a href="http://www.bluene.net/blog/208?commentInput=true#entry208WriteComment">댓글 쓰기</a></strong></p>