수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

c++ 기초적인 질문입니다.

소라

2023.04.01

내용은 전치행렬 8X8 행렬을 2차원 배열 a에 저장하고, 희소행렬로 바꿔서 2차원 배열 b에 저장하고 출력하는 프로그램인데요. 에러는 없는데 무한루프 돕니다. 대략 아래에서 크게 벗어나지 않는 범위 네에서 변형이나 잘못된 점 고쳐주세요.
아직 초보 수준이라서... 배열의 이용 및 구조체, 포인터 부분에서 좀 많이 취약합니다. ㅜ.ㅜ
-------------------------------------------------------------------------------------------------------
#includestdio.h
#define X 100
void main()
{
int a[8][8] = {
{0, 0, 0, 5, 0, 18, 0, 0},
{0, 10, 0, 3, 27, 0, 0, 16},
{0, 9, 0, 0, 77, 0, 0, 44},
{0, 55, 0, 13, 0, 0, 0, 6},
{0, 0, 0, 14, 0, 0, 0, 0},
{43, 0, 1, 74, 27, 0, 0, 0},
{0, 0, 34, 0, 0, 0, 91, 0},
{66, 10, 0, 3, 0, 68, 0, 0} // 8X8행렬에 데이터 값 넣기- 이건 문제 없는거 같은데...
};
int i, j, x, y, total = 0; // 변수 선언
int b[X][3]; //희소 행렬 저장할 2차원 배열
for(i=0; i8; i++) {
for(j=0; j8; j++) {
if(a[i][j] != 0) { // 2차원 행렬 a[i][j]의 값이 0이 아니면 다음의문장 실행(여기서 배열명 써도 되는건가요?)
b[i+1][0] = i; // 첫번째 0행 1열, 0행 2열, 0행 3열에는 8, 8,23이라는 값이 들어가야 하기 때문에i+1을 사용
b[i+1][1] = j; // 혹시i+1을 사용하면 안되는건가요??
b[i+1][2] = a[i][j];
total++; // 0이 아닌값을 세어서 b[0][3]에 표기할려고 만듬.
}
}
}
b[0][0] = 8; // 희소행렬 0행 0열은 행의 수= 8 이므로 8값 저장
b[0][1] = 8; // 희소행렬 0행 1열은열의 수 = 8 이므로 8값 저장
b[0][2] = total; // 희소행렬 0행 2열에는 0이 아닌 데이터의 겟수가 저장되므로 total 값 저장
for(x=0;xtotal+1;i++) { // 여기서 부터 출력문, total + 1이라고 한건 total의 개수 보다 한칸 더 많아야
for(y=0;y3;y++) { // 맨위에 8, 8, 16이라는 값을 출력해야 하기 때문.
printf(%d %d %d\n, b[i][0], b[i][1], b[i][2]);
}
}
}

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 나리

    일단 틀린곳은 밑에 for문 돌리실때 for(x=0;xtotal+1;x++)이렇게 고쳐주세요 x값을 증가시켜야지i값을 증가시키시면 안끝나고 무한루프를 돌죠 그리고 당연히printf에서도 b[x][0],이런식으로 x값이들어가야져

    그리고 for문을 고쳤다고 해두 이상하게 실행되실텐데요. 제대로 고치실려면
    for(i=0;i8;i++)
    {
    for (j=0;j8;j++)
    {
    if (a[i][j]!=0)
    {
    b[total+1][0]=i;
    b[to

번호 제 목 글쓴이 날짜
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
2695084 [질문] starDrag()와 같은 함수 만들기 민구 2025-05-17
2695055 폰트 질문드립니다. 할인사이트에 많이 쓰는 굵은 숫자폰트.. (2) 일본녀 2025-05-17
2695025 [개발툴]Jcreator 에 관해서... (5) 에녹 2025-05-16
2695006 BitmapData ..무비클립에 적용 할수 있을까요? (1) 날위해 2025-05-16
2694977 C언어 소스문제점좀요 ... (2) 들꿈 2025-05-16
2694950 자바스크립트로 화면에 내용을 뿌려줄때 접근성 (3) 꺆잉 2025-05-16
2694921 보더 레이아웃 안에 플로우 레이아웃 넣는방법? 초롱 2025-05-15
2694894 웹 프로그래밍 관련해서 질문합니다. 창의적 2025-05-15
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com