排序数组中插入数
#include
int main()
{
int i,j,x,a[10];
printf("输入以排好序的数组:\n");
for(i=0;i<9;i++)
scanf("%d",&a[i]);
printf("输入插入的数字:\n");
scanf("%d",&x);
for(i=0;i<9;i++)
{
if(xi;j--)
a[j]=a[j-1];
a[j]=x;
break;
}
}
if(i==9) a[9]=x;
printf("插入后排好序的数组:\n");
for(i=0;i<10;i++)
printf(" %d",a[i]);
}
魔方阵
#include
int main()
{
int a[15][15], i, j, k, p, n;
p = 1;
//输入的n必须是奇数。
//如果n是偶数,那么填充过程中会出现重复的元素,无法得到魔方阵。
while (p == 1)
{
printf("请输入n:") ;
scanf("%d", &n);
if ((n != 0) && (n <= 15) && (n % 2 != 0))
p = 0;
else printf("n 必须为奇数,");
}
for (i = 1; i <= n; i++)
for (j = 1; j <= n; j++)
a[i][j] = 0;
j = n / 2 + 1;
a[1][j] = 1;
for (k = 2; k <= n * n; k++)
{
i = i - 1;
j = j + 1;
if ((i < 1) && (j > n))
{
i = i + 2;
j = j - 1;
}
else
{
if (i < 1)
i = n;
if (j > n)
j = 1;
}
if (a[i][j] == 0)
a[i][j] = k;
else
{
i = i + 2;
j = j - 1;
a[i][j] = k;
}
}
for (i = 1; i <= n; i++)
{
for (j = 1; j <= n; j++)
printf("%5d", a[i][j]);
printf("\n");
}
return 0;
}
数组逆置
#include
int main()
{
int i, j, temp,a[5];
printf("输入数组:\n");
for(i=0;i<5;i++)
scanf("%d",&a[i]);
for (i = 0, j = 4; i < j; i++, j--)
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
printf("逆序后的数组:\n");
for(i=0;i<5;i++)
printf(" %d",a[i]);
}
猴子偷桃
#include
int main()
{
int i,y;
y=1;
for(i=9;i>=1;i--)
y=(y+1)*2;
printf("第一天共摘了%d个桃子",y);
}
求π
#include
#include
int main()
{
// 定义一个整型变量,用于交替地取值1和-1
int sign=1;
// 定义一个双精度浮点型变量,用于存储π的近似值,初始化为0.0
double pi=0.0,n=1.0,term=1.0;
// while循环,条件为term的绝对值大于或等于1×10^-6时继续循环
while(fabs(term)>=1e-6)
{
// 将当前项加到pi上
pi=pi+term;
// 分母每次加2,因为公式中的分母是奇数
n=n+2;
// 改变sign的符号,使得在每项中正负号交替
sign=-sign;
// 计算下一项的值
term=sign/n;
}
// 将结果乘以4,因为Leibniz公式计算的是π/4
pi=pi*4;
// 打印π的近似值,总共占据10个字符的宽度,其中包括小数点后的8位数字
printf("pi=%10.8f\n",pi);
}
矩阵求最大值
#include
int max(int array[][4])
{
int i,j,max;
max=array[0][0];
for(i=0;i<3;i++)
for(j=0;j<4;j++)
if(array[i][j]>max) max=array[i][j];
return (max);
}
int main()
{
int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};
printf("Max is %d\n",max(a));
}
四个数字比较大小
#include
int max2(int a,int b)
{
return a>=b?a:b;
}
int max4(int a,int b,int c,int d)
{
int m;
m=max2(a,b);
m=max2(m,c);
m=max2(m,d);
return m;
}
int main()
{
int a,b,c,d;
printf("请输入要比较的四个数:\n");
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
printf("max=%d",max4(a,b,c,d));
}
求n!
#include
int fac (int n)
{
int f;
if(n<0)
printf("n<0,data,error!\n");
else if(n==0||n==1)
f=1;
else f=fac(n-1)*n;
return(f);
}
int main()
{
int n;
printf("请输入要求的数字:");
scanf("%d",&n);
printf("%d的阶乘为:%d\n",n,fac(n));
}
求1-2+3-4…+99-100的和
#include
int main()
{ int sum,i;
for(i=1;i<=100;i++)
{
if(i%2!=0) sum+=i;//奇加
if(i%2==0) sum-=i;//偶减
}
printf("1-2+3-4.....+99-100的和为%d",sum);
}
求1+1/2+2/3+3/5+5/8+.前15项和
#include
int main() {
double sum = 0.0;
int i, j = 1;
for (i = 1; i <= 15; i++) {
sum += j / (double)i;
j += 2;
}
printf("前15项和为:%.2lf", sum);
}
两数相除要求小数点后70位数字
#include
int main()
{
double a,b,c;
scanf("%lf,%lf",&a,&b);
c = a / b;
printf("a/b的值为:%.70lf\n", c);
}
求逆序数
#include "stdio.h"
int main()
{
int n,m,i;
m=0;
printf("请输入一个数字,使其逆序:");
scanf("%d",&n);
while(n!=0)
{
i=n%10; // 取个位上的数字
m=m*10+i;// 构造逆序数 将取到的个位乘10,加上个位本身,使其循环操作
//使原来的个位变成十位,百位
n/=10;// 去掉个位上的数字 ,使输入数变小
}
printf("逆序数为:%d",m) ;
}
冒泡排序
#include "stdio.h"
main()
{
int a[100],n,i,j,temp;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=1;i<n;i++)
for(j=0;j<n-i;j++)
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
for(i=0;i<n;i++)
printf("%5d",a[i]);
}
选择排序
#include
void select(int a[], int n)
{
int i, j, min, temp;
for (i = 0; i < n - 1; i++)
{
min = i;
for (j = i + 1; j < n; j++)
{
if (a[j] < a[min])
min = j;
}
temp = a[i];
a[i] = a[min];
a[min] = temp;
}
}
int main()
{
int a[10] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
int n = 10;
select(a, n);
for (int i = 0; i < n; i++)
printf("%d ", a[i]);
printf("\n");
return 0;
}
判断素数
#include "stdio.h"
main()
{ int i,x;
scanf("%d",&x);
for(i=2;i<x;i++)
if(x%i==0) break;
if(i==x) printf("%d是素数",x);
else printf("%d不是素数",x);
}
最大公约数
int main()
{
int x, y, z;
z = 0;
scanf("%d,%d", &x, &y);
z = x%y;
int m=x;
int n=y;
while (z)
{
x = y;
y = z;
z = x % y;
}
printf("最大公约数:%d\n", y);
printf("最小公倍数:%d",m*n/ y);
}
菲波那切数列
#include "stdio.h"
int fib(int n)
{
int s;
if(n==1||n==2) s=1;
else s=fib(n-1)+fib(n-2);
return s;
}
main()
{
int n;
scanf("%d",&n);
printf("%d",fib(n));
}
回文数
#include "stdio.h"
main()
{
int x,y=0,t;
scanf("%d",&x);
t=x;
do{
y=y*10+t%10;
t/=10;
}while(t!=0)
if(y==x) printf("%d是回文数",x);
else printf("%d不是回文数",x);
}
回文串
#include"stdio.h"
#include"string.h"
main()
{ int i,j;
char str[100];
gets(str);
for(i=0,j=strlen(str)-1;i<j;i++j--)
if(str[i]!=str[j) break;
if(i<j) printf("不是回文串!\n");
else printf("是回文串!\n");
}
a+aa+aaa+…+a…a
#include "stdio.h"
main()
{
int a,n,i;
long s,x;
scanf("%d%d",&a,&n);
for(i=1,s=0,x=0,i<=n;i++)
{
x=10*x+a;
s=s+x;
}
printf("%ld",s);
}
百钱白鸡
#include
#include
int main()
{
int cock, hen, chicken;
for (cock = 0; cock <= 20; cock++)
for (hen = 0; hen <= 33; hen++)
for (chicken = 0; chicken <= 100; chicken++)
{
if ((5 * cock + 3 * hen + chicken / 3.0 == 100) && (cock + hen + chicken == 100))
printf("cock=%2d,hen=%2d,chicken=%2d\n", cock, hen, chicken);
}
return 0;
}
数组元素颠倒存放
#include "stdio.h"
main()
{ ##从小到大输入数组,元素颠倒存放在元素组中
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0,j=9;i<=j;j++,j--)
{t=a[i];a[i]=a[j];a[j]=t;}
for(i=0;i<10;i++)
printf("%5d",a[i]);
}
完数
#include "stdio.h"
main()
{ ##完数:该数的所有真因子之和等于该数的和
int i,s,j; ## 如:6=1+2+3 本题求1000以内
for(i=2;i<=1000;i++)
{
s=0;
for(j=1;j<=i-1;j++)
if(i%j==0) s+=j;
if(i==s) printf("%5d",i);
}
}
求1234组成不重复的三位数个数
#include "stdio.h"
main()
{
int i,j,k,c;
for(i=1,c=0;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
if(i!=j&&i!=k&&j!=k)
c++;
printf("%d",c);
}
求整数各位数字之和
#include "stdio.h"
main()
{ int n,sum=0;
scanf("%d",&n);
for(;n!=0;)
{ sum=sum+n%10;
n=n/10;
}
printf("sum=%d",sum);
}
三个数从大到小排序
#include "stdio.h"
main()
{ int x,y,z,t;
scanf("%d%d%d",&x,&y,&z);
if(x<y){t=x;x=y;y=t;}
if(x<z){t=x;x=z;z=t;}
if(y<z){t=z;z=y;y=t;}
printf("%5d%5d%5d",x,y,z);
}
求阶乘
#include
int main()
{
int i,n;
double sum=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum=sum*i;
printf("%lf",n,sum);
}
水仙花数
#include "stdio.h"
main()
{
int i,a,b,c;
for(i=100;i<=999;i++)
{
a=i/100;
b=i/10%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c==i)
printf("%5d",i);
}
}
玫瑰花数
#include
#include
int main() {
int i, j, k;
for (i = 1; i <= 9; i++) {
for (j = 0; j <= 9; j++) {
for (k = 0; k <= 9; k++) {
int num = i * 100 + j * 10 + k;
if (num == pow(i, 3) + pow(j, 3) + pow(k, 3)) {
printf("%d\n", num);
}
}
}
}
return 0;
}
1,3,3,5,5,7,7,9,…,97,99,99,101
#include "stdio.h"
main()
{
int i,s;
for(i=1,s=0;2*i-1<=99;i++;)
s+=(2*i-1)+(2*i+1)
printf("%d",s);
}
1,4,7,10…前20项的和
#include "stdio.h"
main()
{
int i,s=0;
for(i=1;i<=20;i++)
s+=3*i-2;
printf("%d",s);
}
鸡兔同笼
#include
int main()
{
int head, foot, chicken, rabbit;
// 提示用户输入头和脚的数量,并使用 scanf 函数获取输入值
printf("请输入头和脚的数量:");
scanf("%d %d", &head, &foot);
// 根据鸡和兔的数量关系,计算出兔的数量和鸡的数量
// 由于每只兔有四只脚,每只鸡有两只脚,
// 所以通过脚的数量减去头的数量乘以两只脚的数量,
// 再除以每只兔的四只脚,就可以得到兔的数量。
rabbit = (foot - head * 2) / 2;
chicken = head - rabbit;
// 输出计算结果
printf("鸡的数量为:%d,兔的数量为:%d\n", chicken, rabbit);
return 0;
}
输入三边长度计算并输出其面积
#include
#include
int main() {
float a, b, c, s, area;
printf("请输入三角形的三条边长:\n");
scanf("%f %f %f", &a, &b, &c);
if (a + b > c && a + c > b && b + c > a)
{
s = (a + b + c) / 2; //海伦公式
area = sqrt(s * (s - a) * (s - b) * (s - c));
printf("三角形的面积为:%.2f\n", area);
}
else {
printf("不能构成三角形!\n");
}
return 0;
}