#include<stdio.h>
int max(int a,int b,int c)
{
int max=0;
max=a>b?a:b;
max=max>c?max:c;
return max;
}
int min(int a,int b,int c)
{
int min=0;
min=a<b?a:b;
min=min<c?a:c;
return min;
}
int middle(int a,int b,int c)
{
int middle=a+b+c-max(a,b,c)-min(a,b,c);
return middle;
}
int main()
{
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d %d %d",max(a,b,c),middle(a,b,c),min(a,b,c));
}
//if语句依次比较大小排序
#include <stdio.h>
int compare(int x,int y,int z)
{
int t=0;
if(x<y)
{
t=x;x=y;y=t;//x,y值交换
}
if(y<z)
{
t=y;y=z;z=t;//y和z交换
}
if(x<y)
{
t=x;x=y;y=t;
}
printf("the number from big to small is\n %d %d %d \n",x,y,z);
}
int main()
{
int a,b,c;
printf("please input three numbers \n");
scanf("%d %d %d",&a,&b,&c);
compare(a,b,c);
return 0;
}
以上为三个数比大小,并且排序。
判断素数的代码
#include<stdio.h>
int main()
{
int n,i;
int count;
int k=0;
printf("Enter a number:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{ count=n%i;
if(count==0){
k++;
}
}
if(k>2)
printf("不是素数");
else
printf("是");
}
#include<stdio.h>
int main()
{
int i,m;
printf("Enter a number:");
scanf("%d",&m);
for(i=2;i<=m/2;i++)
if(m%i==0)
break;
if(i>m/2&&m!=1)
printf("%d is a prime number\n",m);
else
printf("No!\n");
return 0;
}
使用循环判断素数得到两种结论,是素数或者不是素数,分别对应循环的两个条件是素数或者不是素数,分别对应循环两个结束条件。如果for循环正常结束可判定m是素数,如果m%i==0判定m是素数。可有使用break强制循环结束。
猜数游戏
#include<stdio.h>
#include<stdlib.h>//后面用到了rand(),srand()函数
#include<time.h>
int main(){
int count=0,flag,mynumber,yournumber;
srand(time(0));
mynumber=rand()%100+1;//计算机随机产生1~100的被猜数
flag=0;//flag的值为0表示没有被猜中
while(count<7){//最多猜7次
printf("Enter your number:");//输入你所猜的数
scanf("%d",&yournumber);
count++;
if(yournumber==mynumber){
printf("Lucky you!\n");
flag=1;
break;
}
else
if(yournumber>mynumber)
printf("Too big!\n");
else printf("Too small\n");
}
if(flag==0)
printf("Game over!\n");
return 0;
}
阶乘和
//阶乘和(计算过程中,阶乘值和累加值都比较大,所以把相关变量和函数类型都定义为double)
#include<stdio.h>
double fact(int n)
{
int i=1;
double project=1;
for(i=1;i<=n;i++)
project=project*i;
return project;
}
int main()
{
int i;
double sum=0;
for(i=1;i<=100;i++)
sum=sum+fact(i);
printf("%e",sum);
}
上面是调用函数的写法。下面是一种嵌套循环
#include<stdio.h>
int main()
{
int i,a;
double sum,item;
sum=0;
for(i=1;i<=100;i++){
item=1;
for(a=1;a<=i;a++){
item=item*a;
}
sum=sum+item;
}
printf("%e",sum);
}
应注意循环初始化的问题,对嵌套循环初始化时候,一定要分清内外层循环,sum=0是对外层循环的初始化放在外层for之前,而item=1是对内层循环。
自然常数 e 可以用级数 1+1/1!+1/2!+?+1/n!+? 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
#include<stdio.h>
int main()
{
int n,i,j,denominator;
double sum,project;
printf("Enter n:");
scanf("%d",&n);
sum=1;
for(i=1;i<=n;i++){
project=1;
for(j=1;j<=i;j++){
project=project*j;
}
sum=sum+1.0/project;
}
printf("%.4f",sum);
}
遇到循环问题应该选用哪种语句呢,如果明确循环次数的,首选for语句,如果需要通过其他条件,通常选用while或者do-while语句;如果必须先进入循环,如果必须先进入循环,再判断是否进行下一次循环使用do-while最合适。
|