Code: Select all
#include<stdio.h>
void start_print(int *ps, int size);
int main(void)
{
int score[100];
int size=0;
printf("숫자를 입력하세요 :");
while((scanf("%d",&score[size]))!= -1) // EOF를 입력받기 전까지 입력받음
{
size++; //배열에 순차적으로 저장하기 위함
printf("숫자를 입력하세요 :");
}
start_print(score,size); // 별 출력하는 함수 호출
return 0;
}
void start_print(int *ps, int size)
{
int i,j,share;
for(i=0;i<size;i++)
{
printf("(%3d) ", ps[i]); // 배열에 입력된 수 출력
share = ps[i] / 5;// 배열의 각 인덱스에 저장된 값을 5로 나누어 출력할 별의 개수를 share변수에 저장
for(j=0;j<share;j++)//share 크기만큼 별을 출력하는 반복문
{
printf("*");
}
printf("\n");
}
}
Code: Select all
#include<stdio.h>
void swap(int* x, int* y);
int float_mod(int x, int y);
int main(void)
{
int i=0;
int sum=0;
int ave=0;
int mod=0;
int a,b,c;
int arr[100];
while((scanf("%d",&arr[i]))!= -1)// EOF를 입력받기 전까지 입력받음
{
i++;
}
//내림차순 정렬
for(a=0;a<i;a++)//배열의 크기만큼 반복
{
for(b=0;b<i;b++)// 첫 번째 배열의 요소를 기준으로 각 각의 배열 요소값들과 >비교
{
if(arr[a] > arr[b])//swap함수의 조건
{
swap(&arr[a], &arr[b]);//swap함수 호출
}
else
continue;
}
}
printf("result: ");
for(c=0;c<i;c++)//정렬된 배열 출력 및 총 합을 구함
{
sum = sum+arr[c];//변수sum에 배열의 요소를 더함
printf("%d ", arr[c]);
}
printf("\n");
ave = sum/(i);//평균 구하기
mod = float_mod(arr[0], ave);//float함수 호출, 내림차순정렬이기 때문에 배열의 >처음값과 평균을 인자로 전달
printf("max: %d\n", arr[0]);//최대값 출력, 배열의 첫번째 요소
printf("min: %d\n", arr[i-1]);//최소값 출력, 배열의 마지막 요소
printf("ave: %d\n", ave);//평균출력
printf("mod: %d\n", mod);//최대값을 평균으로 나눈 나머지 출력
return 0;
}
void swap(int* x, int* y)//swap함수, 메인함수의 변수를 바꾸기 위해서는 포인터 변수>가 필요하기 때문에 인자로 포인터 변수 전달
{
int temp;
temp=*x;
*x=*y;
*y=temp;
}
int float_mod(int x, int y)//float_mod함수, 인자로 최대값과 평균을 받음
{
int z=0;
z = x%y;
return z;
}
Code: Select all
#include<stdio.h>
#include<string.h>
void search(char *word, char *sentence);
int main(void) {
char line[100]; //최초 문장 입력
char temp[30]; //검색할 단어(토큰) 입력
printf("문장 입력: ");
gets(line);
while(1) {
printf("검색할 문자열 입력(종료는 end): ");
if(0 == gets(temp)) break; //EOF 입력 받으면 반복문 탈출
if(0 == strcmp(temp,"end")) break; //end를 입력 받으면 반복문 탈출
search(temp, line); //검색 함수 호출
}
/*
논의 사항
더 효율적인 계산 방법은?
strstr() 함수를 각자 구현할 수 있는가?
*/
}
void search(char *word, char *sentence) {
char *t[100];
int cnt = 1;
int i;
//0번지는 원문 저장, 1번지부터 검색된 문자의 포인터를 저장
t[0]=t[cnt]=sentence;
while(1) {
t[cnt] = strstr(t[cnt-1], word); //이전 검색된 위치 다음부터 찾아야함, >무한 루프 방지
if(t[cnt] == NULL) break; //검색되지 않은경우 반복문 탈풀
cnt++; //검색된 개수를 카운트
t[cnt-1]++; //검색된 포인터를 1 더해줌, 무한루프 방
지
}
printf("%d개", cnt-1);
for(i=1; i<cnt; i++) {
printf(", %d번째", t[i]-sentence); //포인터 위치의 차를 이용해서 몇번재에 위치하는지 계산
}
printf("\n");
}