C# 언어 좀 도와주세요 ㅠㅠ 신세계 입니다 ㅠㅠ
제가 교집합 차집합 합집합을 나타내는 콘솔을 C로 구성했는데...
이걸 C#으로 바꾸어서 해보려하니 ㅠㅠ 너무 어렵워서요 ㅠ 아직 C#은 만진적이 많지안아
배우고 있는데... 밑에 C소스를 활용해서
비슷하게 C#콘솔로 짜주실수 있나 해서요 ㅠ
#include"stdio.h"
#include"stdafx.h"
int input(int *a1,int *a2); //입력
int output(int *out); //출력
int sort(int *center); //정렬
int sos(int *a1, int *a2,int *center); //합집합
int inter(int *a1, int *a2,int *center); //교집합
int dos(int *a1, int *a2,int *center); //차집합
void main()
{
int a1[20];
int a2[20];
int center[40]; //각 배열 0번은 총 배열 길이의 인덱스
int select;
do{
putchar('\n');
printf("****** 집합 *****\n");
printf("1. 원소입력\n");
printf("2. 합집합\n");
printf("3. 교집합\n");
printf("4. 차집합\n");
printf("5. 종료\n");
printf(" -> ");
scanf("%d",&select);
putchar('\n');
switch(select){
case 1 :
{
input(a1,a2);
sort(a1);
sort(a2);
break;
}
case 2 : {
sos(a1,a2,center);
printf("A 원소 : ");
output(a1);
printf("B 원소 : ");
output(a2);
printf("A|B 합집합 : ");
sort(center);
output(center);
break;
}
case 3 : {
inter(a1,a2,center);
printf("A 원소 : ");
output(a1);
printf("B 원소 : ");
output(a2);
printf("A&B 교집합 : ");
sort(center);
output(center);
break;
}
case 4 : {
dos(a1,a2,center);
printf("A 원소 : ");
output(a1);
printf("B 원소 : ");
output(a2);
printf("A-B 차집합 : ");
sort(center);
output(center);
break;
}
case 5 :
break;
}
}while(select!=5);
}
// ** 입력 **
int input(int *a1,int *a2)
{
int cou1;
printf("A 원소 갯수 : ");
scanf("%d",&a1[0]);
for(cou1=1;cou1<=a1[0];cou1++){
printf(" -> %d번째 원소 : ",cou1);
scanf("%d",&a1[cou1]);
}
printf("B 원소 갯수 : ");
scanf("%d",&a2[0]);
for(cou1=1;cou1<=a2[0];cou1++){
printf(" -> %d번째 원소 : ",cou1);
scanf("%d",&a2[cou1]);
}
return 0;
}
// ** 출력 **
int output(int *out)
{
int cou1;
for(cou1=1;cou1<=out[0];cou1++){
printf("%d ", out[cou1]);
}
putchar('\n');
return 0;
}
// ** 정렬 **
int sort(int *center)
{
int cou1,cou2;
int min,temp;
for(cou1=1;cou1<=center[0];cou1++){
min = center[cou1];
for(cou2=1;cou2<=center[0];cou2++){
if(min < center[cou2]){
temp = center[cou2];
center[cou2] = min;
min = temp;
}
}
center[cou1] = min;
}
return 0;
}
// ** 합집합 **
int sos(int *a1, int *a2, int *center)
{
int cou1;
int cou2;
center[0]=a1[0]; //집합 a1 를 center로 이식
for(cou1=1;cou1<=a1[0];cou1++){
center[cou1]=a1[cou1];
}
for(cou1=1;cou1<=a2[0];cou1++){
cou2=1;
while(1){
if(center[cou2]!=a2[cou1]){
if(cou2==center[0]){
center[(center[0])+1]=a2[cou1];
(center[0])++;
break;
}
cou2++;
}
else break;
}
}
return 0;
}
// ** 교집합 **
int inter(int *a1, int *a2,int *center)
{
int cou1, cou2;
center[0]=0;
for(cou1=1;cou1<=a1[0];cou1++){
for(cou2=1;cou2<=a2[0];cou2++){
if(a1[cou1]==a2[cou2]){
center[center[0]+1]=a1[cou1];
(center[0])++;
break;
}
}
}
return 0;
}
// ** 차집합 **
int dos(int *a1, int *a2,int *center)
{
int cou1,cou2;
center[0]=0;
for(cou1=1;cou1<=a1[0];cou1++){
cou2=0;
while(1){
if(a1[cou1]!=a2[cou2]){
if(a2[0]==cou2){
center[center[0]+1]=a1[cou1];
(center[0])++;
break;
}
cou2++;
}
else break;
}
}
return 0;
}
코딩만으로 많은 시간이 소비되겠네요. C# 공부하시는
코딩만으로 많은 시간이 소비되겠네요.
C# 공부하시는 분들은 공부해볼 만 하겠네요.
숙제는 스스로 해야 가치 있습니다.
숙제는 스스로 해야 가치 있습니다.
기존 소스가 없다면 힌트가 필요할테지만...
기존에 동작하는 다른 언어의 소스가 있는데... 짜주세요는... 조금..ㅋㅋ 윗분 말처럼 숙제는 스스로 해야..ㅋㅋㅋ
남자라면 어렵지 싶습니다.
남자라면 어렵지 싶습니다.
재벌 2세가 재벌이 될 확률과
금메달리스트 2세가 금메달을 딸 확률이 비슷해지도록
자유오픈소스 대안화폐를 씁시다.
아이디의 아이디어 무한도전
http://blog.aaidee.com
귀태닷컴
http://www.gwitae.com
C# 쉽습니다.
C# 쉽습니다. C보다 더 쉬우니 그냥 MSDN켜두고 조금만 덤벼보세요.
무슨 사정이신진 몰라도 직접 해야지 얻는게 더 많죠.
헐 전왜 c#코드처럼보일까요 ㅋ
지금은 모바일이니 있다가 올려볼께요
χxχ=χ^2
GIS SW 개발자
댓글 달기