이 작은 코드에 문제가 있습니다. 문제는 데이터 입력과 관련이 있습니다. 입력 된대로 데이터를 가져올 수 없습니다. 다음 값을 입력하면 :scanf() 정크 값 받기, 이중 문제 없음
얻을g1 = 3; Q = 3 기간 (TERMO) = 3
난
G1 = 3, Q = 0, 용어 (TERMO) = 2686724.
이미 전후 scanf,
후 getchar()
및 fflush(stadin)
사용하여 시도 데이터 입력 루틴을 지정하고 "% f (d)"
사이에 공백을 넣으십시오. 아무것도 작동하지 않습니다. DevC++과 CodeBlocks를 사용하고 있는데 모두 동일한 문제가 있습니다 (gnu gcc 일 수 있습니까?).
나는 무엇을 해야할지 잘 모릅니다. 코드가 scanf()
이거나 문제가있는 PC입니까?
이것은 C 코드입니다. 문제는 termos_pg()
함수 루틴에 있습니다. 문장 printf("g1=%.f, q=%.f, termo=%d,\n",g1,q,termo);
에 calcula_pg()
함수 루틴을 입력하면 termos_pg()
루틴에 들어갑니다. 아무도 나를 도울 수 있습니까?
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <math.h>
float ind,gn,g1,val,q;
int termo,gx=0,i;
main()
{
setlocale(LC_ALL,"Portuguese");
char X;
printf ("\nSe houver parâmetro desconhecido, tecle s ou S, caso nao, ENTER.\n");
X=getch();
fflush(stdin);
if(X=='s' || X=='S'){
es_pg();
return (0);}
else{
termos_pg();
return (0);
}
system("PAUSE");
return 0;
}
termos_pg()
{
printf("\nDigite o 1º termo da PG: ");
scanf("%f",&g1);
printf("Digite a razao da PG: ");
scanf("%f",&q);
printf("Digite a quantidade de termos: ");
scanf("%d",&termo);
calcula_pg(g1,q,termo);
}
calcula_pg(g1,q,termo)
{
printf("g1=%.f, q=%.f, termo=%d,\n",g1,q,termo);
printf("\n\tA sequência é: \n");
for(i=0;i<termo;i++)
if(++gx==termo)
printf("\ta%d= %20.f.\n",gx,(g1*powf(q,(termo-(termo-i)))));
else
printf("\ta%d= %20.f;\n",gx,(g1*powf(q,(termo-(termo-i)))));
system("PAUSE");
}
es_pg(){;}
주 후 : 여기
는 효과를 입증하는 예제 프로그램의 왼쪽 코드의' 시스템은 ("PAUSE") 원래의 외곽으로 치지 만'else' 절뿐 아니라'for()'루프 다음에 발생하는 것을 들여 쓰기 위해 들여 쓰기해야합니다. 그게 문제 야? – chux