first
#include <stdio.h>
int main()
{
int n=0,factor=1;
printf("请输入n:");
scanf("%d",&n);
for(int i=1;i<=n;i++)
factor*=i;
printf("%d!=%d",n,factor);
return 0;
}
练习for的使用方法
second
#include <stdio.h>
int main()
{
printf("请输入n:");
int n=0,factor=1;
scanf("%d",&n);
for(;n>=1;n--)
factor*=n;
printf("阶乘为%d",factor);
return 0;
}
for括号里的语句可省略,但;不能省略
third
#include <stdio.h>
int main()
{
int prime=0;
printf("请输入一个整数:");
scanf("%d",&prime);
int i=prime,reminder=0,n=0;
do{
i--;
reminder=prime%i;
if(reminder==0)
n++;
}while(i>2);
if(n>0)
printf("%d是合数\n",prime);
else
printf("%d是素数\n",prime);
return 0;
}
练习do-while循环
逐渐递减
n=0要放在循环外,否则n会一直保持>0的状态
n的引入,用数字表示实际含义的思想
fourth
#include <stdio.h>
int main()
{
printf("请输入一个整数:");
int prime;
int n=0,i=0;
scanf("%d",&prime);
for(i=2;i<prime;i++){
int reminder=prime%i;
if(reminder==0){
n++;
break;
}
}
if(n==0){
printf("%d是素数\n",prime);
}
else{
printf("%d是合数\n",prime);
}
return 0;
}
判断素数合数:递增
break的用法:跳出循环
fifth
#include <stdio.h>
int main()
{
printf("请输入一个整数:");
int prime=0;
scanf("%d",&prime);
int reminder=0,x=0;
for(int i=2;i<prime;i++){
reminder=prime%i;
if(reminder>0){
continue;
}
x++;
printf("%d\n",i);
}
if(x>0)
printf("该数为合数\n");
else
printf("该数为素数\n");
return 0;
}
for的用法复习
continue的用法:跳过本轮循环,直接进行下一轮(感觉用起来和else差不多,只不过意思相反)
sixth
#include <stdio.h>
int main()
{
int x=0;
int cnt=0;
for(x=2;x<100;x++){
int n=0,i=0;
int reminder=0;
for(i=2;i<x-1;i++){
reminder=x%i;
if(reminder==0){
n++;
break;
}
}
if(n==0){
printf("%d\n",x);
cnt++;
}
}
printf("\n");
printf("在0到100之间共有%d个素数",cnt);
return 0;
}
嵌套循环
get到了for循环的优势:直接将本循环的条件都写出来,避免因为分不清层次而混乱
seventh
#include <stdio.h>
int main()
{
int x=2;
int i=0,reminder=0,cnt=0,n;
while(cnt<=50){
for(i=2;i<x;i++){
reminder=x%i;
n=0;
if(reminder==0){
n++;
break;
}
}
if(n==0){
printf("%d\n",x);
cnt++;
}
x++;
}
return 0;
}
这个代码写的时候出了好多错……
主要问题就是分不清层次,逻辑关系混乱
嵌套循环最好用for
不过要想锻炼一下的话也可以试着用while
last
今日学习结束