>백엔드 개발 >C#.Net 튜토리얼 >C 언어로 된 10가지 고전적인 작은 프로그램

C 언어로 된 10가지 고전적인 작은 프로그램

黄舟
黄舟원래의
2016-12-12 14:13:402174검색

[순서 1]
질문: 1, 2, 3, 4개의 숫자가 있는데, 반복되지 않는 세 자리 숫자는 몇 개나 만들 수 있나요? 몇 개입니까?
1. 프로그램 분석: 백의 자리, 십의 자리, 일의 자리에 들어갈 수 있는 숫자는 모두 1, 2, 3, 4입니다. 모든 순열을 구성한 후
로 이동하여 조건에 맞지 않는 순열을 삭제합니다.
2. 프로그램 소스 코드:

main() 
{ 
int i,j,k; 
printf("\n"); 
for(i=1;i<5;i++)    /*以下为三重循环*/ 
 for(j=1;j<5;j++)  
  for (k=1;k<5;k++) 
   { 
    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/ 
    printf("%d,%d,%d\n",i,j,k); 
    } 
}

[프로그램 2]
제목: 회사에서 지급하는 보너스는 수익 기준입니다. 이익(I)이 100,000위안 이하인 경우 이익이 높을 경우 보너스를 10% 늘릴 수 있습니다.
금액이 100,000위안 미만, 200,000위안 미만인 경우 100,000위안 미만 부분은 10% 수수료가 부과됩니다. 100,000위안 초과 부분은 수수료가 부과될 수 있습니다.
7.5%; 200,000~400,000위안 사이인 경우 200,000위안 초과 부분에 대해 5% 수수료가 부과됩니다. 400,000~600,000위안 사이인 경우 수수료는 5%입니다.
40만 위안 부분은 3%, 60만~100만 위안 부분은 1.5%의 수수료를 받을 수 있습니다.
금액이 100만 위안을 초과하면 100만 위안을 초과하는 부분에 대해 수수료가 1%가 됩니다. 키보드에서 해당 월의 수익 I를 입력하세요. 총 보너스 수는 어떻게 분배되어야 하나요?
1. 프로그램 분석: 숫자축을 이용하여 분할하고 위치를 지정해주세요. 보너스는 정의할 때 정수로 정의되어야 합니다.   
2. 프로그램 소스 코드:

main() 
{ 
int i,j,k; 
printf("\n"); 
for(i=1;i<5;i++)    /*以下为三重循环*/ 
 for(j=1;j<5;j++)  
  for (k=1;k<5;k++) 
   { 
    if (i!=k&&i!=j&&j!=k)    /*确保i、j、k三位互不相同*/ 
    printf("%d,%d,%d\n",i,j,k); 
    } 
}

[프로그램 2]
제목: 회사에서 지급하는 보너스는 수익 기준입니다. 이익(I)이 100,000위안 이하인 경우 이익이 높을 경우 보너스를 10% 늘릴 수 있습니다.
10만 위안 미만, 20만 위안 미만인 경우 10만 위안 미만 부분에는 10%의 수수료가 부과됩니다.
7.5%; 200,000~400,000위안 사이인 경우 200,000위안 초과 부분에 대해 5% 수수료가 부과됩니다. 400,000~600,000위안 사이인 경우 수수료는 5%입니다.
40만 위안 부분은 3%, 60만~100만 위안 부분은 1.5%의 수수료를 받을 수 있습니다.
금액이 100만 위안을 초과하면 100만 위안을 초과하는 부분에 대해 수수료가 1%가 됩니다. 키보드에서 월 수익 I를 입력하세요. 총 보너스 수는 어떻게 분배되어야 합니까?
1. 프로그램 분석: 숫자축을 이용하여 분할하고 위치를 지정해주세요. 보너스는 정의할 때 정수로 정의되어야 합니다.
2. 프로그램 소스코드 :

main() 
{ 
long int i; 
int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; 
scanf("%ld",&i); 
bonus1=100000*0.1;bonus2=bonus1+100000*0.75; 
bonus4=bonus2+200000*0.5; 
bonus6=bonus4+200000*0.3; 
bonus10=bonus6+400000*0.15; 
 if(i<=100000) 
  bonus=i*0.1; 
 else if(i<=200000) 
     bonus=bonus1+(i-100000)*0.075; 
    else if(i<=400000) 
        bonus=bonus2+(i-200000)*0.05; 
       else if(i<=600000) 
           bonus=bonus4+(i-400000)*0.03; 
          else if(i<=1000000) 
              bonus=bonus6+(i-600000)*0.015; 
             else 
              bonus=bonus10+(i-1000000)*0.01; 
printf("bonus=%d",bonus); 
}

[프로그램 3]
제목 : 정수, 100을 더하면 완전제곱수가 되고, 168을 더하면 완전제곱수, 이 숫자는 무엇인가요?
1. 프로그램 분석: 100,000 이내를 결정하려면 먼저 처방 전 숫자에 100을 더한 다음 처방 후 숫자에 268을 더한 후 처방합니다.
다음 조건을 만족하는 결과가 나온 것입니다. 구체적인 분석을 참조하세요:
2. 프로그램 소스 코드:

#include "math.h" 
main() 
{ 
long int i,x,y,z; 
for (i=1;i<100000;i++) 
 { x=sqrt(i+100);   /*x为加上100后开方后的结果*/ 
  y=sqrt(i+268);   /*y为再加上168后开方后的结果*/ 
   if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/ 
    printf("\n%ld\n",i); 
  } 
}

[프로그램 4]
제목: 특정 연도, 특정 월, 오늘이 올해인지 판단하세요 무슨 날인가요?
1. 프로그램 분석: 3월 5일을 예로 들면, 이전 두 달을 먼저 합산한 다음, 그 해의 특별일인 5일을 더해야 합니다.
윤년이고 입력 월이 3보다 큰 경우 하루를 추가하는 것을 고려해야 합니다.
2. 프로그램 소스 코드:

main() 
{ 
int day,month,year,sum,leap; 
printf("\nplease input year,month,day\n"); 
scanf("%d,%d,%d",&year,&month,&day); 
switch(month)/*先计算某月以前月份的总天数*/ 
{ 
 case 1:sum=0;break; 
 case 2:sum=31;break; 
 case 3:sum=59;break; 
 case 4:sum=90;break; 
 case 5:sum=120;break; 
 case 6:sum=151;break; 
 case 7:sum=181;break; 
 case 8:sum=212;break; 
 case 9:sum=243;break; 
 case 10:sum=273;break; 
 case 11:sum=304;break; 
 case 12:sum=334;break; 
 defaultrintf("data error");break; 
} 
sum=sum+day;  /*再加上某天的天数*/ 
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/ 
  leap=1; 
 else 
  leap=0; 
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/ 
sum++; 
printf("It is the %dth day.",sum); }

[프로그램 5]
제목: 세 개의 정수 x, y, z를 입력하세요. 출력되는 세 숫자의 순위를 지정하세요. .
1. 프로그램 분석: x에 가장 작은 숫자를 넣는 방법을 찾아 먼저 x와 y를 비교하고 x>y이면 x와 y의 값을 교환합니다.
그런 다음 x와 z를 사용하여 비교합니다. x>z이면 x가 최소화될 수 있도록 x와 z의 값을 교환합니다.
2. 프로그램 소스 코드:

main() 
{ 
int x,y,z,t; 
scanf("%d%d%d",&x,&y,&z); 
if (x>y) 
/*交换x,y的值*/ 
if(x>z) 
/*交换x,z的值*/ 
if(y>z) 
/*交换z,y的值*/ 
printf("small to big: %d %d %d\n",x,y,z); 
}

[프로그램 6]
제목: * 기호를 사용하여 문자 C의 패턴을 출력합니다.
1. 프로그램 분석: 먼저 b4e17c67ac9499e268d9626ccce8267d*b4e17c67ac9499e268d9626ccce8267d 기호를 사용하여 종이에 문자 C를 쓴 다음 별도의 줄에 출력할 수 있습니다.
2. 프로그램 소스코드 :

#include "stdio.h" 
main() 
{ 
printf("Hello C-world!\n"); 
printf(" ****\n"); 
printf(" *\n"); 
printf(" * \n"); 
printf(" ****\n"); 
}

[프로그램 7]
제목 : 특수 패턴 출력, C 환경에서 실행해 보세요, 아주 아름답습니다!
1. 프로그램 분석: 총 256자입니다. 캐릭터마다 그래픽이 다릅니다.   
2. 프로그램 소스 코드:

#include "stdio.h" 
main() 
{ 
char a=176,b=219; 
printf("%c%c%c%c%c\n",b,a,a,a,b); 
printf("%c%c%c%c%c\n",a,b,a,b,a); 
printf("%c%c%c%c%c\n",a,a,b,a,a); 
printf("%c%c%c%c%c\n",a,b,a,b,a); 
printf("%c%c%c%c%c\n",b,a,a,a,b); }

[프로그램 8]
제목: 9*9 수식 출력.
1. 프로그램 분석: 행과 열, 총 9행과 9열을 고려하여 i는 행을 제어하고 j는 열을 제어합니다.
2. 프로그램 소스코드 :

#include "stdio.h" 
main() 
{ 
 int i,j,result; 
 printf("\n"); 
 for (i=1;i<10;i++) 
  { for(j=1;j<10;j++) 
    { 
     result=i*j; 
     printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ 
     } 
   printf("\n");/*每一行后换行*/ 
   } 
}

[프로그램 9]
제목 : 체스판 출력요청.
1. 프로그램 분석: i를 사용하여 행을 제어하고 j를 사용하여 열을 제어하고 i+j의 합 변화에 따라 검은색 사각형 또는 흰색 사각형의 출력을 제어합니다.
2. 프로그램 소스코드 :

#include "stdio.h" 
main() 
{ 
int i,j; 
for(i=0;i<8;i++) 
 { 
  for(j=0;j<8;j++) 
   if((i+j)%2==0) 
    printf("%c%c",219,219); 
   else 
    printf(" "); 
   printf("\n"); 
  } 
}

[프로그램 10]
제목 : 계단을 프린트하고 계단 위에 웃는 얼굴 두 개를 동시에 프린트해보세요.
1. 프로그램 분석: i를 사용하여 행을 제어하고, j를 사용하여 열을 제어하고, j를 사용하여 i의 변화에 ​​따라 출력되는 검은색 사각형의 수를 제어합니다.
2. 프로그램 소스코드 :

#include "stdio.h" 
main() 
{ 
int i,j; 
printf("\n");/*输出两个笑脸*/ 
for(i=1;i<11;i++) 
 { 
 for(j=1;j<=i;j++) 
   printf("%c%c",219,219); 
 printf("\n"); 
  } 
}


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.