您的位置:首页 > 编程语言 > C语言/C++

走入C语言的世界3(选择语句和循环语句)

2019-04-19 21:22 253 查看
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/scanf_s5/article/details/89408365

一,选择语句
1.if语句
if语句就是根据给定的条件成立与否选择要执行的语句。
例如:输出一个数,输出其绝对值

if (x <= 0)
printf("%d", x);
else
printf("%d", -x);

例1:求一元二次方程的根

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
double a, b, c, d, x1, x2, p, q;
scanf_s("%lf%lf%lf", &a, &b, &c);
d = b*b - 4 * a*c;
if (d < 0)
printf("此方程无解");
else
{
p = -b / (2.0*a);
q = sqrt(d) / (2.0*a);
x1 = p + q;
x2 = p - q;
printf("输出两个根:x1=%7.2f\nx2=%7.2f\n", x1, x2);
}
system("pause");
return 0;
}

调试结果:

2,关系运算符与逻辑运算符

  • 在C语言中有以下关系运算符:

    关系运算符都是双目运算符,其结合性均为左结合。关系运算符的优先级低于算术运算符,高于赋值运算符。 在C语言中,有的运算符有两个操作数,例如
    10+20,10和20都是操作数,+
    是运算符。我们将这样的运算符称为双目运算符。同理,将有一个操作数的运算符称为单目运算符,将有三个操作数的运算符称为三目运算符。
    常见的双目运算符有 +、-、*、/ 等,单目运算符有 ++、-- 等;

  • 逻辑运算符
    &&,||,!
    以上三种逻辑运算符中,逻辑非 ! 的优先级最高,逻辑与 && 次之,逻辑或 || 优先级最低。即算术、逻辑、赋值运算符的优先级顺序为:
    逻辑非 ! >算术 > 逻辑与 &&、逻辑或 || > 赋值=

    逻辑与 && 运算符的运算规则:只有两个操作数均为逻辑真时,结果才为真。其余情况,结果均为假。

    逻辑或 || 运算符的运算规则:只有两个操作数均为逻辑假时,结果才为假。其余情况,结果均为真。

例2:判断是否为闰年

(year%4==0&&year%100!=0)||year%400==0

判断非闰年

!(year%4==0&&year%100!=0||year%400==0)
(year%4!=0)||(year%100==0&&year%400!=0)

2.switch语句
switch语句是多分支选择语句,括号中的"表达式",其值的类型应为整数类型(包括字符型)。
例3:输入某年某月某日,判断这一天是这一年的第几天?

#include<stdio.h>
#include<stdlib.h>

int main()
{
int day, month, year, sum, leap;
printf("please input year,month,day\n");
scanf_s("%d %d %d", &year, &month, &day);
switch (month)/*先计算某月以前月份的总天数*/
{
case 1:sum = 0; break;
case 2:sum = 31; break;
case 3:sum = 59; break;
case 4:sum = 90; break;
case 5:sum = 120; break;
case 6:sum = 151; break;
case 7:sum = 181; break;
case 8:sum = 212; break;
case 9:sum = 243; break;
case 10:sum = 273; break;
case 11:sum = 304; break;
case 12:sum = 334; break;
default:printf("data error"); break;
}
sum = sum + day; //再加上某天的天数
if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0))//判断是不是闰年
leap = 1;
else
leap = 0;
if (leap == 1 && month>2)//如果是闰年且月份大于2,总天数应该加一天
sum++;
printf("It is the %dth day.", sum);
system("pause");
return 0;
}

调试结果:

二.循环语句
1,for语句
若条件表达式的值为真,则执行for语句中的循环体,直到条件为假,跳出循环。
例4:九九乘法表:

#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
{
int i, j;
for (i = 1; i < 10; i++)
{
for (j = 1; j <= i; j++)
printf("%d*%d=%-5d", i, j, i*j);
printf("\n");
}
system("pause");
return 0;
}

调试结果:

2,while与do…while
两者的区别是while要先判断后执行,do…while先执行一次再进行判断
例5:两者进行比较
while

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, s=0;
scanf_s("%d", &i);
while (i <= 10)
{
s = s + i;
i++;
}
printf("s=%d", s);
system("pause");
return 0;
}

调试结果:

do…while

#include<stdio.h>
#include<stdlib.h>
int main()
{
int i, s=0;
scanf_s("%d", &i);
do
{
s = s + i;
i++;
} while (i <= 10);
printf("s=%d", s);
system("pause");
return 0;
}

调试结果:

while循环,do…while循环和for循环都可以用break语句跳出循环,用continue语句结束本次循环

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: