C语言程序算法

基本算法

C语言程序算法(一)

两个数交换

1.方法一:采用原来的两个数进行加减从而实现两数交换。

#include <stdio.h>

int main(void)

{

int a = 12,b =34;

printf(“交换前a=%d,b=%d”,a,b);

a = a + b;

b = a - b;

a = a - b;

printf(“交换后a=%d,b=%d”,a,b);

return 0;

}

2.方法二:借助中间变量进行交换

#include <stdio.h>

int main(void)

{

int a = 12,b =34;

printf(“交换前a=%d,b=%d”,a,b);

nTemp = a;

a = b;

b = nTemp;

printf(“交换后a=%d,b=%d”,a,b);

return 0;

}

3.方法三:使用按位异或方式。

#include <stdio.h>

int main(void)

{

int a = 12,b =34;

printf(“交换前a=%d,b=%d”,a,b);

a = a ^ b;

b = a ^ b;

a = a ^ b;

printf(“交换后a=%d,b=%d”,a,b);

return 0;

}

三数排序

1.方法一

#include <stdio.h>

int main(void)

{

int temp;

int x=12,y=56,z=34;

printf("排序前x=%d,y=%d,z=%d\n",x,y,z);

}

if(x>y)

{

temp=x;x=y;y=temp;

}

if(x>z)

{

temp=x;x=z;z=temp;

}

if(y>z)

{

temp=y;y=z;z=temp;

}

printf("排序后x=%d,y=%d,z=%d\n",x,y,z);

return 0;

}

2.方法二

#include <stdio.h>

#define MAX(a,b,c) ((a>b?a:b)>c)?(a>b?a:b):c//前两个数中的大数和后两个数中的大数,中的大数

#define MID(a,b,c) a>b?((b>c)?b:(a>c?c:a)):((a>c)?a:(b>c?c:b))//前两个数中的大数和后两个数中的大数,中的小数

#define MIN(a,b,c) ((a>b?b:a)>c)?c:(a>b?b:a)//前两个数中的小数和后两个数中的小数,中的小数

int main(void)

{

int temp;

int x=12,y=56,z=34;

printf("排序前x=%d,y=%d,z=%d\n",x,y,z);

printf("排序后x=%d,y=%d,z=%d\n",MIN(x,y,z),MID(x,y,z),MAX(x,y,z));

return 0;

}

C语言程序算法(一)

键盘输入10个数,输出最大数和最小数.

#include <stdio.h>

int main()

{

int a[10],i,max,min;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

max=a[0];

min=a[0];

for(i=0;i<10;i++)

{

if(max<a[i])

{

max=a[i];

}

if(min>a[i])

{

min=a[i];

}

}

printf("最大数为%d\n最小数为%d\n",max,min);

return 0;

}

计算1+2+3+……+100=?.

#include <stdio.h>

int main(void)

{

int num = 0;

int i;

for(i = 1;i <= 100; i++)

{

num += i;

}

printf("1+2+3+……+100=%d \n",num);

return 0;

}

计算5!.

#include <stdio.h>

int main(void)

{

int s=1,i;

for(i=1;i<=5;i++)

s*=i;

printf("%d\n",s);

return 0;

}

素数的判断

方法一:计算从2~n-1

#include <stdio.h>

int main(void)

{

int i, n;

scanf("%d", &n);

for (i = 2; i < n ; i++)

{

if (n%i == 0)

break;

}

if (i < n) printf("This is not a prime.");

else printf("This is a prime.");

return 0;

}

方法二:计算从2~n的算术平方根

#include <stdio.h>

#include <math.h>

int main(void)

{

int n,i;

double k;

scanf("%d", &n);

k = sqrt(n);

for (i = 2; i <= k;i++)

{

if (n%i == 0) break;

}

if (i <=k) printf("This is not a prime.");

else printf("This is a prime");

return 0;

}

闰年判断

#include <stdio.h>

int main (void)

{

int year;

printf("请输入年份:");

scanf("%d",&year);

if((year%4==0)&&(year%100!=0)||(year%400==0))

printf("此年是闰年\n");

else

printf("此年不是闰年\n");

return 0;

}

输出9*9乘法口诀。

#include <stdio.h>

int main(void)

{

int i,j,result;

for (i=1;i<10;i++)

{ for(j=1;j<10;j++)

{

result=i*j;

printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/

}

printf("\n");/*每一行后换行*/

}

return 0;

}

C语言程序算法(一)

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

兔子的规律为数列1,1,2,3,5,8,13,21....*/

#include<stdio.h>

int main(void)

{

long f1,f2;

int i;

f1=f2=1;

for(i=1;i<=20;i++)

{

printf("%12ld %12ld",f1,f2);

if(i%2==0) printf("\n");/*控制输出,每行四个*/

f1=f1+f2; /*前两个月加起来赋值给第三个月*/

f2=f1+f2; /*前两个月加起来赋值给第三个月*/

}

return 0;

}

喜欢的话关注收藏评论转发一波 比心么么哒!加入我们C语言C++学习交流 389318488群内有大量的项目开发和新手教学视频千人大群等着你来加入。

猜你喜欢

转载自blog.csdn.net/weixin_42784331/article/details/81188752