// Array4.c
#include <stdio.h>
#include <string.h>
int main()
{
char c1 = 'A', i;
char str[10] = "kingdom"; // 곡백μ nullκ³Ό λ€λ¦
// 1μ°¨μ λ¬Έμλ°°μ΄μ νλμ λ¬Έμμ΄μ λ΄λλ€.
printf("%d, %d, %d \n", sizeof(c1), sizeof(str[0]), sizeof(str));
printf("%c, %c, %p, %p \n\n", c1, str[0], &str[0], str); // str=&str[0]: 첨μκ° μλ λ°°μ΄λ³μλ λ°°μ΄μ 첫 λ²μ§Έ κ°μ μλ―Έ
// scanf("%s", str); // campus [enter] // &λ₯Ό μμ¨λ λλ€. str μμ²΄κ° μ£Όμ
// gets_s(str); // λ¬Έμμ΄μ λ°μμ κ΄νΈμμ μ£Όμμ μ§μ ν΄μ€λ€ // campus [enter]μμ enter κ°μ null byte(\0)λ‘ λ³νν΄ μμ μ£Όμμ λμ
ν¨
char tmp[100];
do{
printf("input string ?");
gets_s(tmp);
} while (strlen(tmp)>= sizeof(str)); // tmpμ μ μ₯ν λ¬Έμμ΄ ν¬κΈ°κ° μ μ₯νλ €λ λ°°μ΄ ν¬κΈ°(str)λ³΄λ€ ν¬κ±°λ κ°μΌλ©΄ overflow λ°μ -> κ° λ€μ λ°μ
strcpy(str, tmp);
printf("%p, %s \n", str, str); // strμ μ£Όμ, %sλ null κΉμ§ λ¬Έμμ΄ μΆλ ₯
printf("\n");
for (i = 0; i < 10; i++)
printf("%p: %c, %d \n", &str[i], str[i], str[i]); // %p:μ£Όμ μ§μ , %s: ν λΉλ°μ μ£Όμλ‘λΆν° null byte λ§λ λ κΉμ§ λ¬Έμλ₯Ό λ°ν~
return 0;
}
//string_function.c
#include <stdio.h>
#include <string.h>
int main()
{
int i, len;
char s1[20] = "king", s2[20] = "";
printf("s1:%s, s2: %s \n", s1, s2);
printf("size: %d, len: %d \n", sizeof(s1), strlen(s1));
// s2 = s1; -> λ°°μ΄λͺ
μΌλ‘ ν λ²μ λ°°μ΄μ 볡μ¬ν μ μκ³ , μμ λ μμλ‘ λ³΅μ¬ν μ μλ€
// len = strlen(s1); // ν¨μλ₯Ό ν λ²λ§ νΈμΆν΄μ νμ©νκΈ° cf. strlen(s1)μ for λ¬Έ λ΄ μ‘°κ±΄μΌλ‘ κΈ°μ¬
//for (int i = 0; s1[i]; i++) // ν¨μ νΈμΆ, λ©λͺ¨λ¦¬ ν λΉ νμ μλ λ°©λ²μ.
// s2[i] = s1[i];
// λ¬Έμμ΄ μ²λ¦¬ ν¨μλ λ¬Έμμ΄ νμ
λ§ μ¬μ© κ°λ₯
strcpy(s2, s1); //strcpy(to, from); / λ¬Έμμ΄λ§ λμ
κ°λ₯(cf. μμ)
printf("s1:%s, s2: %s \n", s1, s2);
do {
printf("input s1 ? ");
gets(s1); //dom[enter] / s1 λ°°μ΄μ λ¬Έμ 'dom'μ s2 λ°°μ΄ λ΄ μ
λ ₯νκ³ μ ν¨ => strcat(to, from); : fromμ λ¬Έμμ΄μ΄ toμ μΆκ°
// aaaaaaaaaaaaaaaaa(18)
} while (strlen(s1)+strlen(s2)>=sizeof(s2)); // ('s1 λ°°μ΄μ μ
λ ₯λ λ¬Έμμ΄ λ©λͺ¨λ¦¬ + s2 λ©λͺ¨λ¦¬' κΈ°μ‘΄ s2 λ©λͺ¨λ¦¬λ³΄λ€ ν¬κ±°λ κ°μΌλ©΄(null κ³ λ €) μ
λ ₯κ° λ€μ λ°μ)
strcat(s2, s1); //strcatμ overflow λ¬Έμ κ° λ°μν μ°λ €κ° μμ
printf("s1:%s, s2: %s \n", s1, s2);
printf("%d \n", strcmp(s1, s2)); //-1 (s1: dom, s2: kingdom)
printf("%d \n", strcmp(s1, s2)); //-1
printf("%d \n", strcmp(s2, "kingdom")); //0
printf("%d \n", strcmp("a", "Abcdefg")); //1
printf("%d \n", strcmp("Apple", "Apple")); //0
return 0;
}
//if (s1 == s2) // μ£ΌμλΌλ¦¬ λΉκ΅νλ μλ―Έ, λ¬ΈμλΌλ¦¬ λΉκ΅νκΈ° μν΄μλ ν¨μ μ¬μ© ν (λ¬Έμλ λ°°μ΄ λ³μ λͺ
μΌλ‘ λΉκ΅ ν μ μκ³ , ν¨μλ₯Ό νμ©ν΄μΌν¨)
//else = > s1κ³Ό s2 λ°°μ΄μ μ§μ μ£Όμκ° λ€λ₯΄λ―λ‘ else μ μν
//
//cf.strcmp ν¨μ μ¬μ©μ ν΅ν λ¬Έμ λΉκ΅(λ¬Έμλ λ°°μ΄ λ³μ λͺ
μΌλ‘ λΉκ΅ ν μ μκ³ , ν¨μλ₯Ό νμ©ν΄μΌν¨)
//strcmp(s1, s2)
//return value{ μμ: λ μμ μ€ μμ΄ νΌ ,
// 0 : λ μμκ° κ°μ,
// μμ : λ μμ μ€ λ€μ κ°μ΄ νΌ }
//
// ex) λ©λͺ¨λ¦¬ ν¬κΈ° λΉκ΅νκΈ° 1 > 2
// (λ¬Έμμ΄ μ€ μ²« λ²μ§Έ λ¬Έμμ μμ€ν€μ½λλ‘ λ©λͺ¨λ¦¬ ν¬κΈ° ν λΉ, a 65) = > μμ€ν€ κ°μ κΈ°μ€μΌλ‘ 1λ°μ΄νΈμ© λΉκ΅ν΄ λκ°λ€..
// a\0
// abcdefg\0
//Array5.c
#include <stdio.h>
/*
*ν€λ³΄λλ‘λΆν° μ±λͺ
, μκΈ, νμ¬μ£Όμλ₯Ό μ
λ ₯λ°μ μΆλ ₯νκ³ μ νλ€.
* μ΄λ μ
λ ₯λλ 건μλ μμ§ λͺ»νλ©°, μ±λͺ
μ΄ "end"μ΄λ©΄ μ
λ ₯μ μ’
λ£νκ³
* μκΈ νκ· μ μΆλ ₯ ν νλ‘κ·Έλ¨μ μ’
λ£νλ€.
*/
// name λ°°μ΄ μ μΈ, sal λ°°μ΄ μ μΈ, comAddr λ°°μ΄ μ μΈ => κ° μ
λ ₯
int main()
{
char name[20], comAddr[50];
int salary;
int Cn = 0, sum = 0;
while (1)
{
printf("μ±λͺ
?(μ
λ ₯ μ’
λ£:end) ");
gets(name); // kim, lee, ... end
if (strcmp(name, "end") == 0)
break;
printf("μκΈ? ");
scanf("%d%*c", &salary); //1000, 2000
printf("νμ¬μ£Όμ ?");
gets(comAddr); //seoul,,,
printf("\nμ±λͺ
: %s, μκΈ: %d, νμ¬μ£Όμ: %s \n", name, salary, comAddr);
sum += salary;
Cn++;
}
printf("===============\n");
printf("μκΈνκ· : %.2f \n", (float)sum / Cn);
return 0;
}
// Array_EX2.c
#include <stdio.h>
//ν€λ³΄λλ‘λΆν° 0μμ 9κΉμ§μ μ μ μ€μμ 10κ°μ μλ₯Ό μ
λ ₯ λ°μ,
//κ°μ₯ λ§μ΄ μ
λ ₯ λ°μ μλ 무μμ΄κ³ , λͺ λ²μΈμ§ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νλ€.
//μ€νκ²°κ³Ό
//1. κ° μ
λ ₯ ? (0~9) 1
//2. κ° μ
λ ₯ ? (0~9) 2
//3. κ° μ
λ ₯ ? (0~9) 3
//4. κ° μ
λ ₯ ? (0~9) 4
//5. κ° μ
λ ₯ ? (0~9) 4
//6. κ° μ
λ ₯ ? (0~9) 5
//7. κ° μ
λ ₯ ? (0~9) 4
//8. κ° μ
λ ₯ ? (0~9) 7
//9. κ° μ
λ ₯ ? (0~9) 7
//10. κ° μ
λ ₯ ? (0~9) 6
//κ°μ₯ λ§μ΄ μ
λ ₯ν μ : 4, νμ : 3
int main()
{
int tmp[10] = { 0 }, i, num, index;
int x[10], cn = 0, sw = 1;
for (i = 0; i < 10; i++)
{
do {
printf("%d κ° μ
λ ₯ ? (0~9) ", i + 1);
scanf("%d%*c", &num); // 3,
} while (num < 0 || num>9);
tmp[num]++; // 첨μ(μΈλ±μ€) κ°μ΄ μ¦κ°
}
//ν° κ° λΉκ΅
index = 0;
for (i = 1; i < 10; i++)
{
if (tmp[index] < tmp[i])
index = i; // μ΅λκ°μ μ§μ νλ μΈλ±μ€ i λ₯Ό index λ³μμ λμ
}
//κ°μ κ° λΉκ΅νμ¬ x λ°°μ΄μ 첨μ μ μ₯
for (i = index; i < 10; i++)
{
if (tmp[index] == tmp[i]) //μ΅λκ°κ³Ό λκ°μλ
{
x[cn++] = i; //xλ°°μ΄μ μ΅μ μ£Όμμ iλ₯Ό μ μ₯ // cn μμΉμ 첨μ(μΈλ±μ€)μ κ°μ λμ
νκ³ cnμ΄ μ¦κ°
sw = 0; // μ€λ³΅μ΄ μλ€λ μ νΈ
}
}
// μΆλ ₯λ¬Έ
if (sw) // sw = 1 (μ€λ³΅μ΄ μλ€λ μ νΈ)
printf("\nκ°μ₯ λ§μ΄ μ
λ ₯ν μ : %d, νμ :%d \n",
index, x[index]);
else // sw = 0 (λ§μ½μ μ€λ³΅μ΄ μλ€λ μ νΈλ₯Ό λ°λλ€λ©΄)
{
for (i = 0; i < cn; i++)
printf("\nκ°μ₯ λ§μ΄ μ
λ ₯ν μ : %d, ", x[i]); // xλ°°μ΄μ μ μ₯λ κ°μ μΆλ ₯
printf("\nνμ : %d, ", tmp[index]); // νμλ λͺ¨λ κ°κΈ°λλ¬Έμ νλ²λ§ μΆλ ₯
}
return 0;
}
// Array_EX2.c
#include <stdio.h>
//ν€λ³΄λλ‘λΆν° 0μμ 9κΉμ§μ μ μ μ€μμ 10κ°μ μλ₯Ό μ
λ ₯ λ°μ,
//κ°μ₯ λ§μ΄ μ
λ ₯ λ°μ μλ 무μμ΄κ³ , λͺ λ²μΈμ§ μΆλ ₯νλ νλ‘κ·Έλ¨μ μμ±νλ€.
//μ€νκ²°κ³Ό
//1. κ° μ
λ ₯ ? (0~9) 1
//2. κ° μ
λ ₯ ? (0~9) 2
//3. κ° μ
λ ₯ ? (0~9) 3
//4. κ° μ
λ ₯ ? (0~9) 4
//5. κ° μ
λ ₯ ? (0~9) 4
//6. κ° μ
λ ₯ ? (0~9) 5
//7. κ° μ
λ ₯ ? (0~9) 4
//8. κ° μ
λ ₯ ? (0~9) 7
//9. κ° μ
λ ₯ ? (0~9) 7
//10. κ° μ
λ ₯ ? (0~9) 6
//κ°μ₯ λ§μ΄ μ
λ ₯ν μ : 4, νμ : 3
int main()
{
int tmp[10] = { 0 }, i, num, index;
int x[10], cn = 0, sw = 1;
for (i = 0; i < 10; i++)
{
do {
printf("%d κ° μ
λ ₯ ? (0~9) ", i + 1);
scanf("%d%*c", &num); // 3,
} while (num < 0 || num>9);
tmp[num]++; // 첨μ(μΈλ±μ€) κ°μ΄ μ¦κ°
}
//ν° κ° λΉκ΅
index = 0;
for (i = 1; i < 10; i++)
{
if (tmp[index] < tmp[i])
index = i; // μ΅λκ°μ μ§μ νλ μΈλ±μ€ i λ₯Ό index λ³μμ λμ
}
//κ°μ κ° λΉκ΅νμ¬ x λ°°μ΄μ 첨μ μ μ₯
for (i = index; i < 10; i++)
{
if (tmp[index] == tmp[i]) //μ΅λκ°κ³Ό λκ°μλ
{
x[cn++] = i; //xλ°°μ΄μ μ΅μ μ£Όμμ iλ₯Ό μ μ₯ // cn μμΉμ 첨μ(μΈλ±μ€)μ κ°μ λμ
νκ³ cnμ΄ μ¦κ°
sw = 0; // μ€λ³΅μ΄ μλ€λ μ νΈ
}
}
// μΆλ ₯λ¬Έ
if (sw) // sw = 1 (μ€λ³΅μ΄ μλ€λ μ νΈ)
printf("\nκ°μ₯ λ§μ΄ μ
λ ₯ν μ : %d, νμ :%d \n",
index, x[index]);
else // sw = 0 (λ§μ½μ μ€λ³΅μ΄ μλ€λ μ νΈλ₯Ό λ°λλ€λ©΄)
{
for (i = 0; i < cn; i++)
printf("\nκ°μ₯ λ§μ΄ μ
λ ₯ν μ : %d, ", x[i]); // xλ°°μ΄μ μ μ₯λ κ°μ μΆλ ₯
printf("\nνμ : %d, ", tmp[index]); // νμλ λͺ¨λ κ°κΈ°λλ¬Έμ νλ²λ§ μΆλ ₯
}
return 0;
}
//
#include <stdio.h>
int main()
{
int tmp[10] = { 0 }, i, num;
int x[10] = { 0 }, cn = 0, max = 0;
for (i = 0; i < 10; i++)
{
do {
printf("%d κ° μ
λ ₯ ? (0~9) ", i + 1);
scanf("%d%*c", &num); // 3,
} while (num < 0 || num>9);
tmp[num]++;
}
//ν° κ° λΉκ΅
for (i = 1; i < 10; i++) // 1 2 2 3
{
if (tmp[max] < tmp[i]) // νμ¬κ°λ³΄λ€ μ΄νκ°μ΄ ν¬λ©΄
{
max = i; // λ§₯μ€μ μΈλ±μ€λ₯Ό iλ‘ μ€μ
int x[10] = { 0 }; // 1 2 2 3 μ²λΌ μλ‘μ΄ μ΅μ κ°μ΄ λνλ¬μλ μ€λ₯μμ κΈ°μν΄ μ 체 μ΄κΈ°ν & μ΄μ§νΌ μ 체 μ΅λκ°μ λμΆν μ΄νμλ μ€νμλ¨
cn = 0;
x[cn] = i;
}
if (tmp[max] == tmp[i])//μ΅λκ°κ³Ό λκ°μλ
{
x[cn] = i; //xλ°°μ΄μ μ΅μ μ£Όμμ iλ₯Ό μ μ₯
cn++;
}
}
// μΆλ ₯λ¬Έ
for (i = 0; i < cn; i++)
printf("\nκ°μ₯ λ§μ΄ μ
λ ₯ν μ : %d, ", x[i]); // xλ°°μ΄μ μ μ₯λ κ°μ μΆλ ₯
printf("\nνμ : %d, ", tmp[i]); // νμλ λͺ¨λ κ°κΈ°λλ¬Έμ νλ²λ§ μΆλ ₯
return 0;
}
//Array6.c
#include <stdio.h>
// λ€μ°¨μ λ°°μ΄(2μ°¨μ μ΄μμ λ°°μ΄)
int main()
{
// ν,μ΄ +) λ°°μ΄μ μ°μμ μΈ μ£Όμλ₯Ό 보μ₯λ°μ
//int num[3][4] = { 1,2,3,4,5,6,7,8,9,10,11,12 }; //12κ° μ
λ ₯
int num[3][4] = {1,2,3,4,5,6}; //μ
λ ₯λ 6κ° μμκ° μΈ 0μ λμ
int i, j;
for (i = 0; i < 3; ++i)
{
for (j = 0; j < 4; ++j)
{
// printf("%p:%3d \n, ", &num[i][j], num[i][j]);
printf("num[%d][%d] = %d, %p:%3d\n", i, j, num[i][j], &num[i][j], num[i][j]);
//printf("%d, %d \n", sizeof(num[0][0]), sizeof(num)); // sizeof(num[0][0]): 0ν 0μ΄μ ν¬κΈ° 4byte
//printf("%p, %d, %p \n", &num[0][0], num[0][0], num);
}
}
return 0;
}
// 2μ°¨μ λ°°μ΄μ μμκ° λμ
: num[0][1] = 100; (νμ λ°λμ μ ν΄μ€μΌν¨ cf. num[1]=100;(x) )
//Array7.c
#include <stdio.h>
int main()
{
int score[5][4] = {
{90, 57, 74, 80},
{60, 57, 84, 80},
{70, 57, 68, 80},
{80, 57, 70, 80},
{57, 57, 54, 80},
};
int i, j;
int sum = 0, avg;
// ν©, νκ· μ ꡬνκΈ°
for (i = 0; i < 5; i++)
{
for (j = 0; j < 4; j++)
{
printf("%3d, ", score[i][j]); // 90 57 ...
sum += score[i][j]; // μμ λμ ν©
}
avg = sum / 4;
// printf(" => %4d, %4d\n", sum, avg);
sum = 0;
}
//λ°μ΄ν° μΆλ ₯
for (i = 0; i < 5; i++)
{
for (j = 0; j < 4; j++)
printf("%3d, ", score[i][j]);
printf("\n");
}
return 0;
}
#include <stdio.h>
int main()
{
int score[5][7] = {
{90,57,34,75},
{42,53,36,74},
{63,45,86,35},
{12,34,34,75},
{42,53,75,79}
};
int i, j;
int rank = 1;
// sum, avg μ
λ ₯
for (i = 0; i < 5; i++)
{
for (j = 0; j < 4; j++)
{
score[i][4] += score[i][j];
}
score[i][5] = score[i][4] / 4;
}
// rank μ
λ ₯
for (i = 0; i < 5; i++)
{
for (j = 0; j < 5; j++)
{
if (score[i][5] < score[j][5])
rank++;
}
score[i][6] = rank;
rank = 1;
}
// κ²°κ³Ό μΆλ ₯
heading();
for (i = 0; i < 5; i++)
{
for (j = 0; j < 7; j++)
{
printf("%3d, ", score[i][j]);
}
// printf("sum : %d, avg : %d, rank : %d", score[i][4], score[i][5], score[i][6]);
printf("\n");
}
return 0;
}
heading()
{
printf("=======================================\n");
printf("κ΅μ΄ μμ΄ μν κ³Όν μ΄μ νκ· μμ°¨ \n");
printf("=======================================\n");
}