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:
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.