이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 14889|회답: 0

[C] 포인터 방법 10개의 숫자를 입력하고, 가장 작은 숫자와 첫 번째 숫자를, 가장 큰 숫자와 마지막 숫자를 바꿉니다.

[링크 복사]
게시됨 2015. 12. 15. 오후 2:19:52 | | |
  1. #include "stdafx.h"
  2. #include "stdio.h"
  3. int main(int argc, char* argv[])
  4. {void input(int *number);
  5. void maxmin(int *number);
  6. void output(int *number);
  7. int number[10];
  8. input(number);
  9. maxmin(number);
  10. output(number);
  11. return 0;
  12. }
  13. void input(int *number)
  14. {printf("please input 10 integer numbers:");
  15. int i;
  16.     for(i=0;i<10;i++)
  17.     scanf("%d",&number<i>);
  18. }
  19. void maxmin(int *number) //交换函数
  20. {int *max, *min,*p,temp;  //定义最大最小,存储变量
  21. max=min=number;   //开始是最大最小值指向第一个数
  22. for(p=number+1;p<number+10;p++)//循环他的第一个数
  23. if(*p>*max)max=p;        //若p指向的数字大于max指向的数,就使max指向p指向的大数字
  24. else if(*p<*min)min=p;   //若p指向的数字小于min指向的数,就使min指向p指向的小数字
  25. temp=number[0];number[0]=*min;*min=temp; //将最小数与第一个数number【0】交换
  26. if(max==number) max=min; //如果max和number相等,,表示第一个数是最大数,则使max指向当前的最大数
  27. temp=number[9];number[9]=*max;*max=temp;//将最大数与最后一个数交换
  28. }
  29. void output(int *number)
  30. {int *p;
  31. printf("now,they are:   ");
  32. for(p=number;p<number+10;p++)
  33. printf("%d,",*p);
  34. printf("\n");
  35. }</i>
코드 복사

이 함수는 여전히 비교적 복잡하며, 세 가지 함수를 사용하고 포인터 방법을 사용해 해결합니다






이전의:바이두 웹마스터 플랫폼의 외부 링크 거부 기능은 사라졌고, 하이퍼체인 알고리즘도 업그레이드되었습니다
다음:포인터 메서드: 3개의 문자열을 입력하고 가장 작은 순서대로 출력합니다
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com