概述
目录
一、选择结构程序设计
二、 循环结构程序设计
一、选择结构程序设计
我们在生活中经常会面临着各种选择,不同的选择有着不同的结果,c语言有两种选择语句:if语句和switch语句。
if语句
if(表达式 )语句;表达式为真时,执行语句,为假时,不执行。
f-else
if (表达式)语句;
else 语句2;
if - else if - else
if(表达式1)语句1; else if(表达式2)语句2; ------else if(表达式m)语句m; else 语句n;
应用举例,实现以上函数
#include<stdio.h>
int main()
{
int x = 0; int y = 0;
scanf("%d", &x);
if (x < 0)
y = -1;
else if (x == 0)
y = 0;
else
y = 1;
printf("%d", y);
return 0;
}
悬空else :else总是和它上面距离最近的没有匹配的if语句相匹配
此代码的功能即实现上述函数,悬空else的匹配如下
注意:if(表达式);,否则即视为if(表达式)在进行判断真假之后,如果为真,执行了空语句(;)。 判断是否相等使用==,使用=为赋值操作。举例:
#include<stdio.h>
int main()
{
int a = 20;
if (a = 1)
printf("%d", a);
return 0;
}
结果:打印1 分析,if(a=1)中不是判断a和1相等,而是将a赋值成为了1。
switch语句 :实现多分支
switch(表达式) { case 1:语句1;break; case 2:语句2;break; --- default:默认语句块; }
表达式的值没有一个可以匹配case语句,执行default。
switch语句的break作用:使程序跳出switch,一个break只能作用于包含这个break的switc内
#include<stdio.h>
int main()
{
int n = 1, m = 2;
switch (n)
{
case 1:n++;switch (m)
{
case 1:m--; break;
case 2:m = 4;
case 3:m++; break;
}
default:n++;
}
printf("m=%d,n=%d", m, n);
return 0;
}
二、 循环结构程序设计
while语句
while(表达式) 语句;表达式为真时,执行语句,为假时结束。
代码功能:一到一百累加求和
#include<stdio.h>
int main()
{
int i = 1;
int sum = 0;
while (i <= 100)
{
sum = sum + i;//sum累加求和 1+2+3+...+100
i++;
}
printf("%d", sum);
return 0;
}
do-while:先执行do里面的循环体,后进行while循环的判断
#include<stdio.h>
int main()
{
int i = 0;
int sum = 0;
do
{
sum = sum + i;//sum累加求和 1+2+3+...+100
i++;
} while (i <= 100);
printf("%d", sum);
return 0;
}
for循环
#include<stdio.h>
int main()
{
int i = 0;
int sum = 0;
for (i = 0; i <= 100; i++)
{
sum = sum + i;//sum累加求和 1+2+3+...+100
}
printf("%d", sum);
return 0;
}
注意;赋值还是判断
循环里面的break和continue
break:循环体内结束本层循环。switch内跳出本层switch语句
continue:只能出现在循环体内 ,作用是提前结束本轮循环,放置在continue后面的语句被跳过,返回到循环控制部分。
练习:1,求n的阶乘
#include <stdio.h>
int main()
{
int i = 1;
int n = 0;
int ans = 1;
scanf("%d", &n);
for (i = 1; i <= n; i++)
ans = ans * i;
printf("%d", ans);
return 0;
}
2.冒泡排序:对于一组杂乱无章的数据进行排序
#include <stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,3,5,6,7,8,9 };
int sz = sizeof(arr) / sizeof(arr[0]);
int i = 0; int j = 0;
for (i = 0; i < sz - 1; i++)
{
int flag = 1;
for (j = 0; j < sz - 1 - i; j++)
{
int t = 0;
if (arr[j] > arr[j + 1])
{
t = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = t;
flag = 0;
}
}
if (flag == 1)
break;
}
for (i = 0; i < sz; i++)
{
printf("%d", arr[i]);
}
return 0;
}
3.二分查找:对一排列有序的数组进行数据的查找
#include<stdio.h>
int main()
{
int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };
int n = 0;
printf("输入找的数字");
scanf("%d", &n);
int left = 0;
int sz = sizeof(arr) / sizeof(arr[0]);
int right = sz - 1;
while (left <= right)
{
int mid = (left + right) / 2;
if (arr[mid] == n)
{
printf("找到了,下标是%d", mid);
break;
}
if (arr[mid] < n)
{
left = mid + 1;
}
if (arr[mid] > n)
{
right = mid - 1;
}
}
if (left > right)
printf("找不到");
return 0;
}
最后
以上就是老迟到溪流为你收集整理的c语言入门—选择循环结构程序设计的全部内容,希望文章能够帮你解决c语言入门—选择循环结构程序设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复