死循环
#include <stdio.h>
int main()
{
//while循环
int i;
printf("请输入一个整数:");
scanf("%d",&i);
while(i<10)//该括号中的东西若为真则触发下述的循环
{
printf("hello world\n");
}
return 0;
}
#include <stdio.h>
int main()
{
int a;
printf("请输入一个整数:\n");
printf("1.机票查询\n");
printf("2.酒店预订\n");
printf("3.火车票查询\n");
printf("4.退出\n");
while (1)
{
scanf("%d", &a);
if (a == 1)
{
printf("机票查询\n");
}
else if (a == 2)
{
printf("酒店预订\n");
}
else if (a == 3)
{
printf("火车票查询\n");
}
else if (a == 4)
{
printf("退出\n");
break;
}
else if (a > 4 || a < 1)
{
printf("输入错误,请重新输入\n");
}
}
return 0;
}
指定循环的次数
#include <stdio.h>
int main()
{
//while循环
//死循环十次然后跳出
int i=0;
while(1)
{
printf("hello world\n");
i++;
if(i==10)
{
break;
}
}
return 0;
}
#include <stdio.h>
int main()
{
//改变执行条件
int i = 5;
while(i--)//i--先执行后判断 因此第一次输入时是5
{
printf("hello world\n",i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i=1;
while(i <= 10)
{
printf("%d\n",i);
i++; //i=i+1;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = -5;
while(i <= 5)
{
printf("%d\n",i);
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 10;
while(i >= 1)
{
printf("%d\n",i);
i--;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 100)
{
if(i % 2 == 1)
{
printf("%d\n",i);
}
i++;
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 1;
while(i <= 100)
{
if(i % 3 == 0 && i % 5 == 0)
{
printf("%d\n",i);
}
i++;
}
return 0;
}
求1加到100的和
#include <stdio.h>
int main()
{
int i = 1;
int j = 0;
while(i <= 100)
{
//printf("%d\n",i);
j = j + i;//j += i;
i++;
}
printf("%d\n",j);
return 0;
}
1加到1/100的和
#include <stdio.h>
int main()
{
double j = 0;
int i = 1;
while(i <= 100)
{
j += 1.0/i;//如果是int的话,1/2会变成0,所以要用double,利用隐式转换,用double的1.0把1/i变成double
i++;
}
printf("%f\n",j);
return 0;
}
求2+4+6+...+100的和
#include <stdio.h>
int main()
{
int i = 0;
int b = 0;
while (i <= 100)
{
i++;
if (i % 2 == 0)
{
b += i;
}
}
printf("%d", b);
return 0;
}
do while与while的区别:do while第一次必须执行
###for循环
//打印1~10
#include <stdio.h>
int main()
{
for (int i = 1; i <= 10; i++)//此处的i的定义在for的里面 i只在for里面起作用 因此在for外定义一个i与for外面的i可同时存在
{
printf("i=%d\n", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int a, b;
int c = 0;
printf("输入两个数字,小数在前,用空格隔开:\n");
scanf("%d %d", &a, &b);
for (int i = a; i <= b; i++)
{
if (i % 4 == 0 || i % 7 == 0)
{
printf("%d ", i);
c++;
}
}
printf("\n一共有%d个\n", c);
return 0;
}
整数反转
#include <stdio.h>
int main()
{
int n;
printf("输入一个整数:");
scanf("%d",&n);
while(n){
int a = n % 10;
n = n / 10;
printf("%d",a);
}
return 0;
}
另一写法
#include <stdio.h>
int main()
{
int n;
printf("请输入一个整数:");
scanf("%d",&n);
int m = 0;
while(n){
int a = n % 10;
n = n / 10;
m = m * 10 + a;
}
printf("%d",m);
return 0;
}
判断一个数是不是素数
#include <stdio.h>
int main()
{
printf("输入一个整数:");
int n;
scanf("%d", &n);
int i = 2;//从2开始判断,因为1不是素数
for(1; i < n; i++)
{
if(n % i == 0){
break;
}
}
printf("%d %s 素数\n", n, i == n ? "是" : "不是");
return 0;
}
判断一个整数是不是2的幂次方 疑问:(怎么好像是判断素数的方法)
另一种代码
#include <stdio.h>
int main()
{
int i;
printf("请输入一个整数:");
scanf("%d", &i);
for (1; i > 0; i % 2)
{
if (i % 2 == 0 || i == 2)
{
printf("yes\n");
break;
}else if(i % 2 != 0)
{
printf("no\n");
break;
}
}
return 0;
}