1
나는이 간단한 코드를 작성했다. (실제로는 s, c 또는 t의 값에 따라 s, c 또는 t의 값을 입력으로 계산했다.)이 코드는 문장의 순서를 바꿀 때까지 잘 작동한다 ... ..... 하나는 잘 작동컴파일러가 컴파일하는 동안 명령문을 건너 뛰고 있습니까?
#include<stdio.h>
#include<math.h>
void main()
{
char T;
float x;
printf("\nPress s or S for sin(x); c or C for cos(x); t or T for tan(x)\n\n");
scanf("%c", &T);
printf("Enter the value of x: ");
scanf("%f",&x);
if(T=='s'||T=='S')
{
printf("sin(x) = %f", sin(x));
}
else if(T=='c'||T=='C')
{
printf("cos(x) = %f", cos(x));
}
else if(T=='t'||T=='T')
{
printf("tan(x) = %f", tan(x));
}
}
* 하지만을 .this * 최대한 빨리으로 배열 변경으로 컴파일러는 x의 값을 요청하고 문자의 T의는 scanf를 건너 뛰고 아무 것도 반환하지 않습니다 다음 ... 아무도 여기서 무슨 일이 일어나는지 설명 할 수 있습니까 ???
#include<stdio.h>
#include<math.h>
void main()
{
char T;
float x;
printf("Enter the value of x: ");
scanf("%f",&x);
printf("\nPress s or S for sin(x); c or C for cos(x); t or T for tan(x)\n\n");
scanf("%c", &T);
if(T=='s'||T=='S')
{
printf("sin(x) = %f", sin(x));
}
else if(T=='c'||T=='C')
{
printf("cos(x) = %f", cos(x));
}
else if(T=='t'||T=='T')
{
printf("tan(x) = %f", tan(x));
}
}
'무효가()'의 주요 인 진입 점에 대한 올바른 서명이 아닙니다. 당신은'int main (void)'를 찾고있다. –
하지만 이전 버전은 정상적으로 실행 중입니다 ... ?? – bluedroid
int main()을 사용하더라도 두 번째 scanf를 건너 뜁니다. – bluedroid