728x90
반응형
Shift 함수
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/**
사용자로부터 공백을 포함하지 않는 문자열을 하나 입력 받아
예제와 같이 왼쪽으로 한 칸씩 shift하여 출력하는 프로그램을 작성 하시오.
◦입력 받는 문자열 길이는 최대 100 이다.
◦출력 시 반복문을 사용하지 않고 문자열 출력(%s)을 사용하시오. 문자 출력(%c) 사용금지
*/
void shift(char *str,char *tmp){
int len = strlen(str);
for(int i=0;i<len;i++){
for(int k=i;k<len;k++) tmp[k-i] = str[k];
//입력된 문자열의 뒷부분을 tmp의 앞부분으로 이동
for(int j=len-i;j<len;j++) tmp[j] = str[j - len + i];
//입력된 문자열의 앞부분을 tmp의 뒷부분으로 이동
puts(tmp);
}
}
int main(){
char str[100];gets(str);
int len = strlen(str),cnt=0;
char *tmp = (char *)malloc(sizeof(char)*len + 1);
shift(str,tmp);
}
시간 계산
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/**
사용자로부터 두 개의 시각을 입력 받아서 두 시각 사이의 차이를 계산하여 출력하는 프로그램을 작성하시오.
◦ 시각은 시, 분, 초로 구성되는 구조체로 정의하라.
◦ 두 번째 시각이 첫 번째 시각보다 항상 늦은 시각이라고 가정한다.
◦ 시간차가 없는 경우에 분과 초만 출력하는 것이 아니라 시 분 초, 0 10 20 으로 출력한다.
*/
struct time{
/* data */
int hour;
int min;
int sec;
}pre,now,rst;
int main(){
int previous,nowtime,result;
scanf("%d %d %d",&pre.hour,&pre.min,&pre.sec);
scanf("%d %d %d",&now.hour,&now.min,&now.sec);
previous = pre.hour*3600 + pre.min*60 + pre.sec;
nowtime = now.hour*3600 + now.min*60 + now.sec;
result = nowtime-previous;
printf("%d %d %d",result/3600,result/60%60,result%60);
}
728x90
반응형
'Datastructure > [Objection]' 카테고리의 다른 글
유클리드 호제법: 재귀 (0) | 2022.01.14 |
---|---|
시간 측정 함수 (0) | 2022.01.10 |
문자열 처리함수 (0) | 2022.01.08 |
진수 변환 (0) | 2022.01.05 |
난수 생성 라이브러리 (0) | 2022.01.04 |