Solicitud de sentencia de bandera

El uso de la bandera como un identificador de estado variable puede simplificar el código y ayudar a juzgar la situación, como el uso de juzgar números primos, que es muy claro.


#include<stdio.h>
int main()
{
    
    
	int a,i;
	int flag=0;
	printf("please input a number:\n");
	scanf("%d",&a);
	if(a==1)
printf("%d is not a sushu!\n",a);
	for(i=2;i<a;i++)
	{
    
    
		if(a%i==0)
			flag=1;
	}
    if(flag==1)
		printf("%d is not a sushu!\n",a);
	else
        	printf("%d is  a sushu!\n",a);
}

Aquí flag = 0 significa un número primo y flag = 1 significa que no es un número primo.

Lo mismo se aplica a cortar palabras en matrices de caracteres también es una parte indispensable.
Por ejemplo, divida una oración en inglés en una sola palabra y ajuste el resultado:

#include<stdio.h>
#include<string.h>
int main()
{
    
    
	int i,flag=0,sum=0;
	char in[80]="",out[80]="";
	int p[80];
	printf("请输入一段英文:\n");
	gets(in);
	printf("分离后的单词为:\n");

	for(i=0;in[i]!='\0';i++)
	{
    
    
		if(in[i]!=' '&&flag==0)
		{
    
    
			p[sum]=i;
			sum++;
			flag=1;
		}
	  else	if(in[i]==' ')]

		{
    
    
			in[i]='\0';
			flag=0;
		}
	}
	for(i=0;i<sum;i++)
	puts(in+p[i]);
}

resultado de la operación:
Inserte la descripción de la imagen aquí

Análisis de código
Primero, defina flag = 0 como el estado inicial, lo que significa que se está procesando en el espacio (sin palabra)
Flag = 1, la situación es opuesta;

El siguiente código es una parte importante del uso de la bandera como una bandera:

for(i=0;in[i]!='\0';i++)
	{
    
    
		if(in[i]!=' '&&flag==0)
		{
    
    
			p[sum]=i;
			sum++;
			flag=1;
		}
	  else	if(in[i]==' ')]

		{
    
    
			in[i]='\0';//把空格字符换成'\0'便于输出
			flag=0;
		}
	}

Por qué cambiar el estado de flag = 0 a flag = 1 en la primera pasada;

p [suma] = i es para registrar el comienzo de la palabra y el número de letras de la palabra. Compare con el siguiente código de salida, no es difícil de encontrar:

for(i=0;i<sum;i++)
	puts(in+p[i]);

pone (en + p [i]), el compilador juzgará y generará la cadena completa una por una al generar. La i en la matriz numérica de p [i] es para registrar cuántas palabras tiene toda la cadena, y en cuanto a p [ 0] p [1] ... Este tipo de subíndice indica cuántas letras tiene una palabra y cuántos caracteres se imprimen. Cuando se encuentra '\ 0', se ajustará automáticamente, de modo que pueda cortar cada palabra en una oración en inglés El rol de.

Supongo que te gusta

Origin blog.csdn.net/yooppa/article/details/112061670
Recomendado
Clasificación