클래식 C 언어 프로그래밍 100가지 예-제목+답안 코드(71-80)

【절차 71】
제목: input()와output() 함수 입력을 작성하고 5명의 학생의 데이터 기록을 출력합니다.1. 프로그램 분석: 2.프로그램 소스 코드:
#define N 5
struct student
{ char num[6];
char name[8];
int score[4];
} stu[N];
input(stu)
struct student stu[];
{ int i,j;
for(i=0;i
{ printf("
please input %d of %d
"
,i+1,N); printf("num: "); scanf("%s",stu[i].num); printf("name: "); scanf("%s",stu[i].name); for(j=0;j<3;j++) { printf("score %d.",j+1); scanf("%d",&stu[i].score[j]); } printf("
"
); } } print(stu) struct student stu[]; { int i,j; printf("
No. Name Sco1 Sco2 Sco3
"
); for(i=0;i{ printf("%-6s%-10s",stu[i].num,stu[i].name); for(j=0;j<3;j++) printf("%-8d",stu[i].score[j]); printf("
"
); } } main() { input(); print(); }

【프로그램 72】
제목: 체인 시계를 만듭니다.1. 프로그램 분석: 2.프로그램 소스 코드:
/*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>
"
); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; ptr->next=(link)malloc(sizeof(node)); if(i==4) ptr->next=NULL; else ptr=ptr->next; } ptr=head; while(ptr!=NULL) { printf("The value is ==>%d
"
,ptr->data); ptr=ptr->next; } }

【절차 73】
제목: 체인 테이블을 반대로 출력합니다.1. 프로그램 분석: 2.프로그램 소스 코드:
/*reverse output a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;

 
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head,tail;
int num,i;
tail=(link)malloc(sizeof(node));
tail->next=NULL;
ptr=tail;
printf("
please input 5 data==>
"
); for(i=0;i<=4;i++) { scanf("%d",&num); ptr->data=num; head=(link)malloc(sizeof(node)); head->next=ptr; ptr=head; } ptr=ptr->next; while(ptr!=NULL) { printf("The value is ==>%d
"
,ptr->data); ptr=ptr->next; }}

[절차 74]
제목: 두 개의 체인 시계를 연결한다.1. 프로그램 분석: 2.프로그램 소스 코드:
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
link delete_node(link pointer,link tmp)
{if (tmp==NULL) /*delete first node*/
return pointer->next;
else
{ if(tmp->next->next==NULL)/*delete last node*/
tmp->next=NULL;
else /*delete the other node*/

 
tmp->next=tmp->next->next;
return pointer;
}
}
void selection_sort(link pointer,int num)
{ link tmp,btmp;
int i,min;
for(i=0;i
{
tmp=pointer;
min=tmp->data;
btmp=NULL;
while(tmp->next)
{ if(min>tmp->next->data)
{min=tmp->next->data;
btmp=tmp;
}
tmp=tmp->next;
}
printf("\40: %d
"
,min); pointer=delete_node(pointer,btmp); } } link create_list(int array[],int num) { link tmp1,tmp2,pointer; int i; pointer=(link)malloc(sizeof(node)); pointer->data=array[0]; tmp1=pointer; for(i=1;i{ tmp2=(link)malloc(sizeof(node)); tmp2->next=NULL; tmp2->data=array[i]; tmp1->next=tmp2; tmp1=tmp1->next; } return pointer; } link concatenate(link pointer1,link pointer2) { link tmp; tmp=pointer1; while(tmp->next) tmp=tmp->next; tmp->next=pointer2; return pointer1; } void main(void) { int arr1[]={3,12,8,9,11}; link ptr; ptr=create_list(arr1,5); selection_sort(ptr,5); }

【프로그램 75】
제목: 긴장을 풀고 간단한 문제를 풀자.1. 프로그램 분석: 2.프로그램 소스 코드:
main()
{
int i,n;
for(i=1;i<5;i++)
{ n=0;
if(i!=1)
n=n+1;
if(i==3)
n=n+1;
if(i==4)
n=n+1;
if(i!=4)
n=n+1;
if(n==3)
printf("zhu hao shi de shi:%c",64+i);
}
}

【프로그램 76】
제목: 함수를 작성하고 n을 짝수로 입력할 때 호출 함수는 1/2+1/4+...+1/n을 구하고 n을 홀수로 입력할 때 호출 함수 1/1+1/3+...+1/n(바늘 함수 이용) 1.프로그램 분석: 2.프로그램 소스 코드:
main()
#include "stdio.h"
main()
{
float peven(),podd(),dcall();
float sum;
int n;
while (1)
{
scanf("%d",&n);
if(n>1)

 
break;
}
if(n%2==0)
{
printf("Even=");
sum=dcall(peven,n);
}
else
{
printf("Odd=");
sum=dcall(podd,n);
}
printf("%f",sum);
}
float peven(int n)
{
float s;
int i;
s=1;
for(i=2;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float podd(n)
int n;
{
float s;
int i;
s=0;
for(i=1;i<=n;i+=2)
s+=1/(float)i;
return(s);
}
float dcall(fp,n)
float (*fp)();
int n;
{
float s;
s=(*fp)(n);
return(s);
}

【프로그램 77】
제목: 공백 채우기 연습(지침을 가리키는 지침)
1. 프로그램 분석: 2.프로그램 소스 코드:
main()
{ char *s[]={"man","woman","girl","boy","sister"};
char **q;
int k;
for(k=0;k<5;k++)
{ ;/*        */
printf("%s
"
,*q); } }

【프로그램 78】
제목: 가장 나이가 많은 사람을 찾아 출력한다.프로그램에 무슨 문제가 있는지 찾아내세요.1. 프로그램 분석: 2.프로그램 소스 코드:
#define N 4
#include "stdio.h"
static struct man
{ char name[20];
int age;
} person[N]={"li",18,"wang",19,"zhang",20,"sun",22};
main()
{struct man *q,*p;
int i,m=0;
p=person;
for (i=0;i{if(mage)
q=p++;
m=q->age;}
printf("%s,%d",(*q).name,(*q).age);
}

【프로그램 79】
제목: 문자열 정렬.1. 프로그램 분석: 2.프로그램 소스 코드:
main()
{
char *str1[20],*str2[20],*str3[20];
char swap();
printf("please input three strings
"
); scanf("%s",str1); scanf("%s",str2); scanf("%s",str3); if(strcmp(str1,str2)>0) swap(str1,str2); if(strcmp(str1,str3)>0) swap(str1,str3); if(strcmp(str2,str3)>0) swap(str2,str3); printf("after being sorted
"
); printf("%s
%s
%s
"
,str1,str2,str3); } char swap(p1,p2) char *p1,*p2; { char *p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p); }

【프로그램 80】
제목: 해변에 복숭아 한 무더기, 원숭이 다섯 마리가 나눈다.첫 번째 원숭이는 복숭아 더미의 증빙서류를 다섯 개로 나누어 하나가 더 많아졌고, 이 원숭이는 많은 하나를 바다에 던져 하나를 가져갔다.두 번째 원숭이는 남은 복숭아를 평균적으로 다섯 몫으로 나누고 또 한 몫을 늘렸다. 똑같은 복숭아를 바다에 던져 한 몫을 가져갔다. 셋째, 넷째, 다섯 번째 원숭이는 모두 이렇게 했다. 해변에 원래 복숭아가 최소한 몇 개냐고 물었다.1. 프로그램 분석: 2.프로그램 소스 코드:
main()
{int i,m,j,k,count;
for(i=4;i<10000;i+=4)
{ count=0;
m=i;
for(k=0;k<5;k++)
{
j=i/4*5+1;
i=j;
if(j%4==0)
count++;
else
break;
}
i=m;
if(count==4)
{printf("%d
"
,count); break;} } }

좋은 웹페이지 즐겨찾기