1. 배열 int a[20]에 데이터를 0~9의 값으로 입력한다음, 포인터를 이용하여 배열의 홀수 번째 값들의 합을 구하여 출력하라
2. 배열 int a[20] 에 데이터를 0~9의 값으로 입력한 다음, 포인터를 이용하여 '9'값을 모두 찾아서 그 주소를 출력하라. 배열의 첫 번째 주소도 출력하라.
3. 배열 int a[20]에 데이터를 0~9의 값으로 입력한 다음, 포인터를 이용하여 '9'값을 찾아서, 배열의 앞부분으로 옮겨라
예) 1 9 2 4 7 9 0 3 1
--> 9 9 2 4 7 1 0 3 1
모두 포인터 *p를 사용해서 해주시고요. 데이터 값은 임의로 해주세요. 그리고 for사용도 해주세요 ㅠㅠ
그리고 각각의 줄에 설명을 좀 써주시면 감사할께요 ㅠㅠ 공부하는데 혼자서 너무 힘들어서요ㅠㅠ
관련 문서가 검색되었습니다.
- [2018/06/15] 프로세싱에서 키보드로 캐릭터 움직이기 (2510)
- [2018/06/15] processing (쉬운 프로그래밍 언어) (1229)
- [2013/10/28] ZEO-IO2 BOARD [ZEO IO 실험 보드2] (6465)
- [2013/06/20] 5명의 키를 읽어 들여 가장 큰 키와 작은 키를 구하는 프로그램을 작성하시오 (12064) *1
- [2013/06/20] 배열 문제인데요 ㅠㅠ (10800) *1
- [2013/05/29] 도구바, OrCAD Capture (4184)
- [2013/04/25] AVR ATmega 128로 인터럽트를 이용한 LED를 점멸하는 방법 좀 알려주세요. (11404) *3
- [2013/04/10] ZEO-IO BOARD – ZEO IO 실험 보드 (7495)
- [2012/11/13] ZEO 모듈이란? (6394)
- [2011/11/09] 난수 발생 srand() rand() (23929)
#include <stdio.h>
int main(void)
{
int a[20]={0,1,2,9,4,5,9,7,8,9,
8,7,6,5,4,3,2,1,0,1};
int sum = 0;
int *p =a;
// 홀수의값을얻으려면2개씩더해서..
for(int i=0;i<20;i+=2)
{
sum += *(p+i);
}
printf("\nSUM = %d",sum);
///////////////////////////////////////////////////////////////
// 2번째
// 다시a 의포인터를받자
p =a;
// 첫번째주소출력
printf("\nFirst Address = %d",a);
for(int i=0;i<20;i++)
{
if(*(p+i) ==9)
{
printf("\n9' Address = %d",p+i);
}
}
printf("\nSUM = %d",sum);
///////////////////////////////////////////////////////////////
// 3번째
// 다시a 의포인터를받자
p =a;
for(int i=1;i<20;i++)
{
if(*(p+i) ==9) //9 라면
{
printf("\n9' Address = %d", i);
for(int j=i-1;j>=0;j--)
{
if(*(p+j)==9) break; // 이미앞에9가있다면바꾸지않겠다.
// 9 가없다면앞으로이동하자.
int temp = *(p+j+1);
*(p+j+1) = *(p+j);
*(p+j) = temp;
printf("\nj = %d", j);
}
}
}
p =a;
printf("\n result:");
for(int i=0;i<20;i+=1)
{
printf(" %d", *(p+i));
}
}