요즘 숭실대에서 프로그래밍 수업을 수강하고 있는데 수업 진행방식이 꽤 스파르타이다ㅠㅠ
역시 한달만에 C언어를 돌파한다는건 쉬운일이 아닌가 보다..
지금까지 과제는 잘 수행했는데 이번 주말과제는 좀 막혔던것 같다.
특히 마지막 문제가 잘 안풀렸는데
Input() 함수를 이용해서 '문자열'을 입력한 다음 이 문자열을 output()로 이동시킨다음 출력하는 문제였다.
처음에 보고 "별거 아니네?" 라고 생각했는데 생각보다 잘 안된다;;
처음엔 이렇게 짜보았다.
------------------------------------
int main(){
char * namestr;
namestr = input_name();
printf("입력결과 : %s",&namestr);
}
char * input_name(){
char * name;
char name_input[100];
printf("입력 : ");
scanf("%s",name_input);
name = name_input;
return name;
}
------------------------------------
input 함수에서 문자열을 입력받고 그 문자열의 주소를 반환했는데.
이게 될리가 없었지....; input_name()함수가 끝나면 name_input[100]과 name에 할당된 공간은 전부 삭제된다.
그래서 이렇게 다시 짜 보았다.
------------------------------------
int main(){
char name[100];
input_name(name);
output(name);
return 0;
}
void input_name(char *name){
printf("# 성명 입력 : ");
gets(name);
return;
}
void output(char *name){
printf("%s씨의 키는 ",name);
}
------------------------------------
main함수에 변수의 주소를 함수로 넘겨주고,
함수속에서는 단순히 할당받은 주소로 문자열을 전송해주거나
주소의 문자열을 출력해주는 역할 만 한다.
과제 끝!
2014년 7월 13일 일요일
2014년 4월 29일 화요일
c++ 다이아몬드 만들기
너무 오랜만에 프로그래밍해서 다이아몬드 만드는것도 헤맴;;
자주자주해야지;
-----------------------------------------------------------------------------
#include <iostream>
using namespace std;
int main(){
int count = 0;
for(int i = 0;i<9;i++){
for(int j = 0;j<9;j++){
if(j < 8-i){
cout << " ";
}else {
cout << "ⓞ";
}
}
count = 0;
while(count < 9){
if(count <i){
cout << "ⓞ";
}else{
cout << " ";
}
count++;
}
cout << endl;
}
for(int i = 0;i<8;i++){
for(int j = 0;j<8;j++){
if(i < j){
cout << "ⓞ";
}else {
cout << " ";
}
}
count = 0;
while(count < 8){
if(count <i){
cout << "";
}else{
cout << "ⓞ";
}
count++;
}
cout << endl;
}
return 0;
}
피드 구독하기:
글 (Atom)