printf("ho_tari\n");

4주차 과제 본문

대학교 2학년 1학기/데이터구조

4주차 과제

호타리 2023. 9. 4. 12:04
#include<stdio.h>

int main(void)
{
     char A[11];
     char temp;
     
     printf(“입력: ”);
     
     for(int i = 0; i<10; i++)
     {
          scanf(“%c”, &A[i]);
          getchar();
          printf(“\n”);
     }
     for(int j = 0; j<5; j++)
     {
          temp = A[j];
          A[j] = A[9-j];
          A[9-j] = temp;
     }
     A[10] = ‘\0’;
     printf(“출력: ”);
     puts(A);
     printf(“\n”);

     return 0;
}

<결과>

 

 

#include<stdio.h>

int sort_num(int* a, int* b, int* c) 
{
    int bst, smt;

    bst = *a > *b ? *a : *b;
    bst = bst > *c ? bst : *c;
    smt = *a < *b ? *a : *b;
    smt = smt < *c ? smt : *c;
    if ((*b >= *a && *c <= *a) || (*b <= *a && *c >= *a))
    {
         *b = *a;
    }
    if ((*a >= *b && *c <= *b) || (*a <= *b && *c >= *b))
    {
         *b = *b;
    }
    else *b = *c;
    *c = bst;
    *a = smt;
    
    return 0;
}

int main(void) 
{
    int i, j, k;

    printf("i 입력 : ");
    scanf_s("%d", &i);

    printf("j 입력 : ");
    scanf_s("%d", &j);

    printf("k 입력 : ");
    scanf_s("%d", &k);
    sort_num(&i, &j, &k);
    printf("세수 : %d %d %d",i,j,k);

    return 0;
}

<결과>

 

 

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define N 5

int arrsum(int* p) 
{
   int sum = 0;
   for (int i = 0; i < 5; i++) 
   {
         sum += *p;
         p++;
   }
   return sum;
}
int arrmul(int* p) 
{
   printf("3배한값 : ");
   for (int i = 0; i < 5; i++) 
   {
      *(p + i) = 3 * *(p+i);
      printf("%d  ", p[i]);
   }
   return 0;
}
int main(void) 
{
   int a[N];
   int i, * p;
   
   printf("배열에 입력할 정수 입력 : ");
   for (i = 0; i < 5; i++) 
   {
      scanf("%d", &a[i]);               
   }
   p = a;
   printf("배열의 합 : %d\n", arrsum(p));
   arrmul(p);

   return 0;
}

<결과>

 

 

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

int main(void) 
{
     int s[10][10]; //10*10합
     int c[10];     // 열
     int r[10];     // 행
     int sum = 0, c_sum = 0, r_sum = 0, cross_sum = 0; 

     srand(time(NULL)); // 난수 생성

     for (int i = 0; i < 10; i++) 
     {
          for (int j = 0; j < 10; j++) 
          {
               s[i][j] = 1 + rand() % 10; 
               sum = sum + s[i][j];       
               printf("s[%d][%d]=%d  ", i, j, s[i][j]);
          }
          printf("\n");
     }
     printf("\n총합 : %d\n\n", sum); 

     for (int i = 0; i < 10; i++) 
     {
          r_sum = 0; 
          for (int j = 0; j < 10; j++) 
          {
               r_sum = r_sum + s[i][j]; 
          }
          r[i] = r_sum; 
          printf("r[%d] = %d  ", i, r_sum); 
     }
     printf("\n");

     for (int j = 0; j < 10; j++) 
     {
          c_sum = 0; 
          for (int i = 0; i < 10; i++) 
          {
               c_sum = c_sum + s[i][j];
          }
          c[j] = c_sum; 
          printf("c[%d] = %d  ", j, c_sum);
     }

     for (int i = 0; i < 10; i++) 
     {
          for (int j = 0; j < 10; j++) 
          {
               if (i == j) 
               cross_sum = cross_sum + s[i][j];
          }
     }

     printf("\n\n대각선의 합 : %d\n\n", cross_sum);

     return 0; 
}

<결과>

 

 

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

void main()
{
     int** array;
     int** array2;
     int** array3;
     int temp[255];
     int temp2[255];
     int temp3[255][255];
     int r1 = 0;
     int r2 = 0;
     int n;
     int i, j, k = 0;
    
     printf(“n x n 배열의 n값을 입력하시오: ”);
     scanf(“%d”, &n);
  
     printf(“First Matrix: \n”);
     array = (int**)malloc(sizeof(int*)*n);
     array[0] = (int*)malloc(sizeof(int*)*n*n);

     for(i=0;i<n;i++)
     {
          array[i] = array[0] + n*i;
     }
     srand((unsigned)time(NULL));

     for(i=0;i<n;i++)
     {
          temp[i] = 0;
     }
     
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               do
               {
                    r1 = rand()%(n*n/2);
                    temp[r1] += 1;
                    if(temp[r1] == 2)
                    {
                         break;
                    }
                }while(temp[r1]>2);
                array[i][j] = r1 + 1;
          }
     }     
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               printf(“%10d”, array[i][j]);
          }
          printf(“\n”);
     }
     printf(“Second Matrix: \n”);
     array2 = (int**)malloc(sizeof(int*)*n);
     array2[0] = (int*)malloc(sizeof(int)*n*n);

     for(i=0;i<n;i++)
     {
          array2[i] = array2[0] + n*i;
     }
     srand((unsigned)time(NULL));
     for(i=0;i<n*n/2;i++)
     {
          temp2[i] = 0;
     }
     
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               do
               {
                    r2 = rand()%(n*n/2);
                    temp2[r2] = += 1;
                    if(temp2[r2] == 2)
                    {
                         break;
                    }
               }while(temp[r2] > 2);
               array2[i][j] = r2 +1;
          }
     }
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               printf(“%10d”, array2[i][j]);
          }
          printf(“\n”);
     }
     

     printf(“Result Matrix: \n”);
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               temp3[i][j] = 0;
               for(k=0;k<n;k++)
               {
                    temp3[i][j] += array[i][k] * array[k][j];
               }
          }
     }
  
     for(i=0;i<n;i++)
     {
          for(j=0;j<n;j++)
          {
               printf(“%10d”, temp3[i][j]);
          }
          printf(“\n”);
     }
}

<결과>

 

'대학교 2학년 1학기 > 데이터구조' 카테고리의 다른 글

3주차 과제  (0) 2023.09.04
2주차 과제  (0) 2023.09.04
1주차 과제  (0) 2023.09.04
과제 - 원형 연결리스트 구현  (0) 2023.09.04
과제 - 단순 연결리스트 구현  (0) 2023.09.04