C 언어 연습: 두 번째 정수
사용자가 0을 입력할 때 입력이 끝났다는 정수 그룹을 읽는 프로그램을 만듭니다.그리고 프로그램은 이 정수에서 두 번째 큰 정수를 찾아내서 그것을 출력할 것이다.설명: (1) 0은 입력이 끝났음을 의미하며 그 자체가 이 정수에 포함되지 않습니다.(2) 이 정수에는 양수도 있고 음수도 있다.(3) 이 정수의 개수는 두 개보다 적지 않다.
입력 형식: 입력은 한 줄만 있고 몇 개의 정수를 포함하며 중간에 빈칸으로 구분되며 마지막 정수는 0이다.
출력 형식: 두 번째로 큰 정수를 출력합니다.
출력 샘플 가져오기
샘플 입력
5 8 -12 7 0
샘플 출력
7
소감: 처음에는 생각이 좋지 않았는데 거품 정렬로 두 번째를 출력하려고 했는데 최대치가 중복될 수 있다는 것을 잊어버렸고 두 번째 실험에서 최소치가 중복될 수 있다는 것을 잊어버렸다.마지막으로 최대치를 구하는 방법을 본 다음에 가장 큰 가치가 있는 방법이 나왔다. 가장 큰 값이 항상 최대치를 수반한다는 것을 알 수 있다.자기가 너무 약해.무슨 원인인지 모르겠지만, 아래의 이 코드는 항상 만점을 받지 못하는데, 어느 테스트가 잘못되었는지 모르겠다.열성 네티즌 한 번 써보시면 안 될까요, T.T.
거품을 일으켜 최대와 최소를 구하는 것은 현명한 방법이 아니다.
PS:1, "66,66,66,66"은 두 번째 큰 숫자가 없고 아무것도 출력하지 않습니다.
2.'99,99,88,86,68,66'은 최대수가 88이다.
3.'0' 은 아무것도 출력하지 않습니다.
#include <stdio.h>
int main(void)
{
int x,y;
int a[20]={0};
int i=-1;
int n;
do
{
i++;
scanf("%d",&a[i]);
}while(a[i]!=0&&i<19);
if(i>=1)
{
x=a[0];y=a[0];
for(n=0;n<i;n++)//将数组里的最大值赋给x
if(x<a[n])
x=a[n];
for(n=0;n<i;n++)//将第二大值赋给y
{
if(a[n]==x)
continue;
else if(a[n]>y)
y=a[n];
}
if(x!=y)
printf("%d",y);}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 체인 시계는 뱀을 탐식하는 작은 게임을 실현한다본고의 실례는 여러분에게 C 언어 체인표가 뱀 탐식 게임을 실현하는 구체적인 코드를 공유하여 참고하도록 하였으며, 구체적인 내용은 다음과 같다. 프로젝트 이름: 뱀놀이 운영 환경: Linux 프로그래밍 언어: C 언...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.