一、switch选择结构
1.1选择结构的替换
二、循环结构
1.1while
练习:计算起始值到终止值之间的和
#include<stdio.h>
int main(int argc, const char *argv[])
{
int start,end;
int sum=0;
int cha=0;
scanf("%d %d",&start,&end);
if(start>end){
cha=end;
end=start;
start=cha;
}
while(start<=end){
sum+=start;
start++;
}
printf("%d\n",sum);
return 0;
}
1.2do...while
练习:计算起始值到终止值之间的乘积
#include<stdio.h>
int main(int argc, const char *argv[])
{
int start=0;
int end=0;
int mul=1;
scanf("%d %d",&start,&end);
while(1)
do{
mul*=start;
start++;
}while(start<=end);
printf("%d\n",mul);
return 0;
}
1.3for
练习 斐波那契数列
1 1 2 3 5 8 13 ——数值
1 2 3 4 5 6 7 ——项数
#include<stdio.h>
int main(int argc, const char *argv[])
{
int a=1;
int b=1;
int c=0;
int i=0;
int n=0;
scanf("%d",&n);
printf("%d %d ",a,b);
for(i=0;i<=n;i++){
c=a+b;
a=b;
b=c;
printf("%d \n",c);
}
return 0;
}
1.4goto
二、跳转语句
作业:
1、循环输入5个元素,输出最大值
思路:
1定义一个变量,循环输入5次
2默认第一次输入的为最值
3依次拿最值进行比较
#include<stdio.h>
int main(int argc, const char *argv[])
{
int i=0;
int ele=0;
int max=0;
for(i=0;i<5;i++){
scanf("%d",&ele);
getchar();
if(i==0 || ele > max){
max = ele;
}
}
printf("最大值为%d\n",max);
return 0;
}
数组方式
#include<stdio.h>
int main(int argc, const char *argv[])
{
int i=0;
int s[5]={0};
int j=0;
int ele=0;
int temp=0;
for(i=0;i<5;i++){
scanf("%d",&ele);
getchar();
s[i]=ele;
for(j=0;j<i;j++){
if(s[j]<s[j-1]){
temp=s[j-1];
s[j-1]=s[j];
s[j]=temp;
}
}
}
printf("最大值为%d\n",s[0]);
return 0;
}
2、任意输入一个数,计算是否是素数
素数:只能被1和本身整除,注意最小的素数是2
思路:只需要计算2- n的根号之间是否存在能整除的数,如果存在则不是素数,不存在则是素数
#include <stdio.h>
#include <math.h>
int is_prime(int num) {
if(num <= 1) {
return 0;
}
for(int i = 2; i <= sqrt(num); i++) {
if(num % i == 0) {
return 0;
}
}
return 1;
}
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if(is_prime(num)) {
printf("%d 是素数。\n", num);
} else {
printf("%d 不是素数。\n", num);
}
return 0;
}