카테고리 없음2017. 11. 13. 01:09

    

상하좌우 대칭인 위와 같은 별모양을 나타내는 코딩.

 

 

#include <stdio.h>


int main(void){
  int valu,a,b;
  int value;
  printf("가로세로값을 입력하시오");
  scanf("%d",&value);

  if(value%2==0){

  valu = (value-1)/2;
  for(valu=valu;valu>0;valu--) //valu는 4>3>2>1      ★아무튼 4번반복하는거니까
  { // 각줄을 의미
  for(a=0;a<valu;a++) // 0부터 valu까지 반복해서 별찍기위해서.
  printf("*");         // *네개찍는거
  for(a=value-valu*2;a>0;a--)
  printf(" ");         // value - valu*2 9-8,9-6,9-4,9-2
  for(a=0;a<valu;a++) // 0부터 valu까지 반복해서 별찍기위해서.
  printf("*");   

  printf("\n");        // 찍고 칸내리기

  }// 각줄을 의미
 
  for(a=0;a<value;a++)
  printf(" ");              // 입력한 간격만큼 공백으로 채워주기 한줄은 공백 쭉 채워지니까

  printf("\n");

 
  valu = value/2;

  for(b=1;b<valu;b++) // b로 *나타내준다는 생각으로 첫바퀴(번째줄)엔1 두바퀴엔2>3>4
  {
    //각 줄을 의미
  for(a=0;a<b;a++)
  printf("*");
  for(a=1;a<=value-2*b;a++)
  printf(" ");
  for(a=0;a<b;a++)
  printf("*");


  printf("\n");        // 찍고 칸내리기
    //각 줄을 의미
  }
   
 


  }
 


  else

  {
  valu = value/2;  // 초반 * 찍히는 갯수를 valu에 담는다 어차피 int형이므로 0.5빼지는효과 ex 9면 4
 

  for(valu=valu;valu>0;valu--) //valu는 4>3>2>1      ★아무튼 4번반복하는거니까
  { // 각줄을 의미
  for(a=0;a<valu;a++) // 0부터 valu까지 반복해서 별찍기위해서.
  printf("*");         // *네개찍는거
  for(a=value-valu*2;a>0;a--)
  printf(" ");         // value - valu*2 9-8,9-6,9-4,9-2
  for(a=0;a<valu;a++) // 0부터 valu까지 반복해서 별찍기위해서.
  printf("*");   

  printf("\n");        // 찍고 칸내리기

  }// 각줄을 의미
 
  for(a=0;a<value;a++)
  printf(" ");              // 입력한 간격만큼 공백으로 채워주기 한줄은 공백 쭉 채워지니까

  printf("\n");

  valu = value/2;

  for(b=1;b<=valu;b++) // b로 *나타내준다는 생각으로 첫바퀴(번째줄)엔1 두바퀴엔2>3>4
  {
    //각 줄을 의미
  for(a=0;a<b;a++)
  printf("*");
  for(a=1;a<=value-2*b;a++)
  printf(" ");
  for(a=0;a<b;a++)
  printf("*");


  printf("\n");        // 찍고 칸내리기
    //각 줄을 의미
  }
  //1>2>3>4

 

 

}

}

Posted by 넓스
카테고리 없음2017. 11. 11. 13:42

문제1. 사이즈가 같은 두 개의 2차원 행렬을 입력하여 두 개의 행렬의 값이 모두 같다면 "두 개의 행렬 값이 같다",
그렇지 않으면 "두 개의 행렬 값이 다르다"를 출력하는 프로그램을 작성하시오.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
 // 크기가 2x2로 같은 2차원 행렬 선언
 int array[2][2];
 int array2[2][2];

 

 // array1 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array1의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array[i][j]);
  }
 }

 // array2 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array2의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array2[i][j]);;
  }
 }


 // 비교
 int Comparison = 0;

 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   if (array[i][j] == array2[i][j])
    Comparison ++;
  }
 }

 if(Comparison == 4)
  printf("두 개의 행렬 값이 같다.");
 else
  printf("두 개의 행렬 값이 다르다.");

 


}

 

 

 

 

 

문제 2. 배열로 작성한 문제1의 프로그램을 포인터를 사용하여 변환하여 프로그램을 작성하시오.

 

#include <stdio.h>
#include <stdlib.h>
#include <time.h>


int main()
{
 // 크기가 2x2로 같은 2차원 행렬 선언
 int array[2][2];
 
 int array2[2][2];

 

 // array1 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array1의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array[i][j]);
  }
 }

 // array2 입력 받음
 for(int i = 0; i < 2 ; i ++){
  for( int j = 0 ; j < 2 ; j++){
   printf("array2의 [%d][%d]행렬값을 입력하시오",i,j);
   scanf("%d",&array2[i][j]);;
  }
 }
 
 //비교
 int Comparison = 0;
 for(int i = 0 ; i < 2 ; i ++ )
 {
  for(int j = 0 ; j < 2 ; j ++ )
  {
   if (*(array[i]+j) == *(array2[i]+j))
   Comparison ++;
  }
 }

 if(Comparison == 4)
 printf("두 개의 행렬 값이 같다.\n");
 else printf("두 개의 행렬 값이 다르다.\n");


}

Posted by 넓스
카테고리 없음2017. 11. 10. 17:35

 

#include <windows.h> // 선언 전제. 아래 system("cls") , Sleep() 사용가능

system("cls"); // 저장된 데이터 안건들이고 화면청소만 해줌

Sleep() // 대기해줌

 

 

for함수도 지역변수다.

 

void main()

{

int data[MAX] = { 0 } ;

data[0] = 1;

data[1] = 2;

printf("%d", data[3]); // 이 경우에도 쓰레기값은 저장 안된다.

}

Posted by 넓스