objetivo de aprendizaje:
Programa de estructura de sucursales del
capítulo 3 de "Mingjie C Language"
Contenido de aprendizaje:
3-1 sentencia if
3-2 sentencia switch
tiempo de estudio:
7-9pm, 24 de octubre de 2020
Notas de estudio:
3-1 declaración if
#include<stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");scanf("%d",&no);
if(no%5)
puts("输入的整数不能被5整除");
return 0;
}
#include<stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");scanf("%d",&no);
if(no%2)
puts("输入的整数是奇数");
else
puts("输入的整数是偶数");
return 0;
}
if (expresión) enunciado 1 else enunciado 2;
<Juzgando el valor de la expresión> Si el enunciado 1 es verdadero, se ejecuta el enunciado 1, de lo contrario se ejecuta el enunciado 2.
Ejercicio 3-1
/* 输入两个整数,如果后者是前者的约数则显示B是A的约数反之显示B不是A的约数 */
#include <stdio.h>
int main(void)
{
int a,b;
puts("请输入两个整数。");
printf("整数a:");scanf("%d",&a);
printf("整数b:");scanf("%d",&b);
if(a%b)
puts("b不为a的公约数");
else
puts("b为a的公约数");
return 0;
}
2. Operador de igualdad
#include<stdi.h>
int main(void)
{
int n1,n2;
puts("请输入两个整数");
printf("整数1:");scanf("%d",&n1);
printf("整数2:");scanf("%d",&n2);
if(n1==n2)
puts("它们相等");
else
puts("它们不相等");
return 0;
== operador. Se comparan los operandos de ambos lados, si son iguales, el resultado es 1 y si no son iguales, el resultado es 0.
El operador! = Se utiliza para determinar si dos operandos no son iguales.
Estos dos operadores se denominan colectivamente operadores de igualdad.
3. Operadores relacionales
#include<stdio.h>
int main(void)
{
int no;
printf("请输入一个整数");scnaf("%d",&no);
if(no==)
puts("该整数为0");
else if(no>0)
puts("该整数为正数");
else
puts("该整数为负数");
return 0;
}
<operador> operador <= operador> = operador El
resultado es 1 cuando es verdadero, y el resultado es 0 cuando no es verdadero.
Ejercicio 3-2
/* if语句结尾else变为else if结果会怎样 */
#include <stdio.h>
int main(void)
{
int a;
scanf("%d",&a);
if(a == 0)
puts("a为0");
else if(a < 0 )
puts("a为负数");
else if(a > 0 )
puts("a为正数");
return 0;
}
Ejercicio 3-3
/* 输出一个数的绝对值 */
#include <stdio.h>
int main(void)
{
int a;
printf("请输入一个数:");scanf("%d",&a);
if(a >= 0)
printf("绝对值是%d",a);
else
printf("绝对值是%d",-a);
return 0;
}
Ejercicio 3-4
/* 输入两个整数,如果两个数值相等显示A和B相等,如果A大于B则显示A大于B,如果A小于B则显示A小于B */
#include <stdio.h>
int main(void)
{
int a, b;
puts("请输入两个数。");
printf("整数A:");scanf("%d",&a);
printf("整数B:");scanf("%d",&b);
if(a == b)
printf("a和b相等");
else if(a >b )
printf("a大于b");
else
printf("a小于b");
return 0;
}
4. Operador condicional
#include<stdio.h>
int main(void)
{
int n1,n2,max;
puts("请输入两个整数");
printf("整数1:");scanf("%d",&n1);
printf("整数2:");scanf("%d",&n2);
max=(n1>n2)?n1:n2;
printf("较大的数是%d\n",max);
return 0;
}
a? b: c operador condicional, si a no es 0, el resultado es el valor de b; de lo contrario, el resultado es el valor de c.
Ejercicio 3-6
/* 计算出输入的三个整数中的最小值并显示 */
#include <stdio.h>
int main(void)
{
int a, b, c,min;
puts("请输入三个整数.");
printf("整数a:");scanf("%d",&a);
printf("整数b:");scanf("%d",&b);
printf("整数c:");scanf("%d",&c);
min = a;
if(b < min)
min = b;
if(c < min)
min = c;
printf("最小值为%d",min);
return 0;
}
Ejercicio 3-7
/* 输入的四个整数中的最大值并显示 */
#include <stdio.h>
int main(void)
{
int a, b, c,max;
puts("请输入三个整数.");
printf("整数a:");scanf("%d",&a);
printf("整数b:");scanf("%d",&b);
printf("整数c:");scanf("%d",&c);
max = a;
if(b > max)
max = b;
if(c > max)
max = c;
printf("最大值为%d",max);
return 0;
}
Ejercicio 3-9
/* 用条件运算符改写程序 */
#include <stdio.h>
int main(void)
{
int num;
printf("请输入一个整数:");scanf("%d",&num);
(num == 0)?puts("该整数是0"):puts("该整数不是0");
return 0;
}
5. Operadores lógicos
#include<stdio.h>
int main(void)
{
int month;
printf("请输入月份:");scanf("%d",&month);
if(month>=3 && month<=5)
printf("%d月是春季\n",month);
else if(month>=6 && month<=8)
printf("%d月是夏季\n",month);
else if(month>=9 && month<=11)
printf("%d月是秋季\n",month);
else if(month == 1 || month == 2 || month == 12)
printf("%d月是冬季\n",month);
else
printf("%d月不存在\n",month);
return 0;
}
a && b "y" juicio
a | | b "o" juicio
Ambos son operadores lógicos.
Ejercicio 3-10
/* 输入三个数,如果有三个相等,则输出有三个值相等,
以此类推,输出三种不同结果。 */
#include<stdio.h>
int main(void)
{
int a,b,c;
puts("请输入三个整数:");
printf("整数A:");scanf("%d",&a);
printf("整数B:");scanf("%d",&b);
printf("整数C:");scanf("%d",&c);
if(a==b&&b==c)
printf("三个值都相等");
else if(a==b||b==c||a==c)
printf("有两个值相等");
else
printf("三个值都不相等");
return 0;
}
Ejercicio 3-11
/* 用逻辑或运算符计算两个整数插值是否小于10 */
#include <stdio.h>
int main(void)
{
int a, b;
puts("请输入两个整数。");
printf("整数A:"); scanf("%d",&a);
printf("整数B:"); scanf("%d",&b);
if((a-b) <= 10 || (a-b) == 0)
printf("它们的差小于等于10。");
else
puts("它们的差大于等于11。");
return 0;
}
3-2 declaración de cambio
cambiar declaración y romper declaración
#include<stdio.h>
int main(void)
{
int no;
printf("请输入一个整数");scanf("%d",&no);
switch(no%3){
case 0:puts("该数能被3整除"); break;
case 1:puts("该数除以3的余数是1 ");break;
case 2:puts("该数除以3的余数是2"); break;
}
return 0;
}
El identificador utilizado para indicar un salto de programa como el caso 1 se llama etiqueta.
Debe haber un espacio entre caso y 1, y no se puede escribir como caso1 sin espacios.
La sentencia break es el final de la ejecución de la sentencia switch.
if (p==1)
c=3;
else if(p==2)
c=5;
else if(p==3)
c=7;
else if(q==4)
c=9;
cambiar
switch(p){
case 1:c=3;break;
case 2:c=5;break;
case 3:c=7;break;
default:if(q==4) c=9;
}
La instrucción if se transforma en una instrucción switch.
Cuando algún caso es inconsistente, el programa saltará a "predeterminado:" para continuar con la ejecución.
Ejercicio 3-12
/* 用swith语句改写程序 */
#include <stdio.h>
int main(void)
{
int no;
printf("请输入一个整数:");
scanf("%d",&no);
switch(no%2){
case 0: puts("该整数是偶数。"); break;
default: puts("该数是奇数。");
}
return 0;
}
Ejercicio 3-13
/* 使用switch语句修改程序 */
#include <stdio.h>
int main(void)
{
int month;
printf("请输入月份:");scanf("%d",&month);
switch (month) {
case 3:
case 4:
case 5:
printf("%d月是春季。\n",month); break;
case 6:
case 7:
case 8:
printf("%d月是夏季。\n",month); break;
case 9:
case 10:
case 11:
printf("%d月是秋季。\n",month); break;
case 12:
case 1:
case 2:
printf("%d月是冬季。\n",month); break;
default :
printf("%d月不存在!!\a\n",month);
return 0;
}
}