九九乘法表
c
#include <stdio.h>
int main()
{
int x,y;
for (x=1;x<=9;x++)
{
for (y=1;y<=x;y++)
printf("%d*%d=%d\t",x,y,x*y);// /t 占位符
printf("\n");
}
return 0;
}C语言数组
c
//数组(Array),它是一组具有相同类型的数据的集合。
#include <stdio.h>
int main()
{
int a[10];
printf("请输入10个数\n");
for (int i = 0; i < 10; ++i)
{
scanf("%d",&a[i]);
}
for(int i = 0 ;i < 10; ++i)
{
printf("%d\n",a[i]);
}
}百钱白鸡
c
#include <stdio.h>
int main()
{
int cock,hen,chicken;
for (cock=0;cock<=20;cock++)
{
for (hen=0; hen<=33; hen++)
{
chicken = 100-cock-hen;
if (cock*5+hen*3+chicken/3.0==100 && cock+hen+chicken==100)
printf("cock=%2d,hen=%2d,chicken=%2d\n",cock,hen,chicken);
}
}
}求n个数的平均数
c
#include <stdio.h>
int num;
double avg(int n)
{
int sum=0;
int data;
printf("\n请输入%d个数据:\n",n);
for(int i=n;i>0;i--)
{
scanf("%d",&data);
sum += data;
}
double average = (double)sum/(double)n;
return average;
}
int main()
{
int n;
while(1)
{
printf("\n请输入数据个数:\n");
scanf("%d",&n);
if(n)
printf("这%d个数据的平均值为%f\n",n,avg(n));
else break;
}
return 0;
}求水仙花数
c
// 水仙花数,123. 拆分个十百位的书。 if判断
#include <stdio.h>
int main()
{
int i;
int a,b,c;
for (i=100; i<=999;i++)
{
a = i % 10;
b = i / 10 % 10;
c = i / 100;
if (i == a*a*a+b*b*b+c*c*c) //注意是两个等于号
{
printf("水仙花数=%d\n",i);
}
}
return 0;
}输入不定长度的数组
c
#include <stdio.h>
int main(){
int array[20] = {0};
int i=0,j;
do{
scanf("%d",&j);
array[i++] = j;
}while(getchar() != '\n');//当输入回车时停止列表的输入
for (int i = 0; i < 20; ++i)
{
printf("%d\n",array[i]); //打印数组的列表
}
}兔子数列
c
#include <stdio.h>
int getNum (int n)
{
if (n == 1 || n == 2)
return 1;
return getNum(n - 2) + getNum(n - 1);
}
int main()
{
printf("f(1)=%d\n",getNum(1));
printf("f(2)=%d\n",getNum(2));
printf("f(3)=%d\n",getNum(3));
printf("f(4)=%d\n",getNum(4));
printf("f(5)=%d\n",getNum(5));
printf("f(12)=%d\n",getNum(12));
return 0;
}借书问题
5本书,借给三个人,每人每次只能借一本,有多少种借书方案
C
#include <stdio.h>
int main()
{
int num=1;
for (int i = 1; i < 6; ++i)
{
for (int j = 1; j < 6; ++j)
{
for (int k = 1; k < 6; ++k)
{
if (i!=j&j!=k&i!=k)
printf("[%d]:%d %d %d\n",num++,i,j,k);
}
}
}
}冰雹猜想
c
#include <stdio.h>
int main()
{
int n;
int count = 1; //计数器
printf("请输入一个数字\n");
scanf("%d",&n);
do{
if (n % 2) //如果不能被2整除,执行if里面的代码
{
n = n*3 +1;
printf("(%d):%d\n",count++,n);
}
else
{
n = n/2;
printf("(%d):%d\n",count++,n);
}
}while(n!=1); //!= 不等于,不相等返回真
return 0;
}打渔还是晒网
c
#include <stdio.h>
int main()
{
int i,x,y,z;
printf("请输入多少天后\n");
scanf("%d%d%d",&x,&y,&z);
x = x-1990;
y = y-1;
z = z-1;
i = x*365+y*30+z;
x = i % 5;
printf("%d",i);
switch(x)
{
case 0:printf("晒网");
break;
case 1:printf("打渔");
break;
case 2:printf("打渔");
break;
case 3:printf("打渔");
break;
case 4:printf("晒网");
break;
}
}判断车牌号
c
// 判断车牌号
#include <stdio.h>
int main()
{
int i,j,k,temp;
for (int i = 0; i < 9; ++i)
{
for (int j = 0; j < 9; ++j)
{
if (i != j)
{
k = i*1000+i*100+j*10+j;
for (temp=30;temp<=99;temp++)
{
if (temp*temp == k)
{
printf("%d\n",k);
}
}
}
}
}
}斐波那契数列
前面两数之和等于后面
C
#include <stdio.h>
int main()
{
long fib1=1,fib2=1,fib;
printf("%d\n",fib1);
printf("%d\n",fib1);
for (int i = 3; i <= 30; ++i)
{
fib = fib1+fib2;
printf("%d\n",fib);
fib1 = fib2;
fib2 = fib;
}
}最佳存款方案
c
//假设银行一年整存零钱的月息为0.63%,现在某人手中有一笔钱,他打算在今后的5年中的每年年底取出1000元,到第五年时刚好取完,请算出他存钱时应该存入多少。
#include <stdio.h>
int main()
{
double b;
b = 1000/(0.0063*12+1); //第五年年初存款
printf("%.2f\n",b);
for (int i = 0; i < 4; ++i) //循环四次
{
b = (b+1000)/(0.0063*12+1);
}
printf("%.2f",b);
}从1到n的排序
c
//从1到n的累加
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n=1,t,count=1;
printf("请输入n=");
scanf("%d",&t);
while (n<t) {
n++;
count=n+count;
}
printf("%d",count);
system("pause");
}比较两个数的大小
c
#include <stdio.h>
int main()
{
int a,b;
printf("请输入两个整数:\n");
scanf("%d%d",&a,&b);
printf("%d较大",(a>b?a:b));//含义为,如果a>b成立则输出a,否则输出b;
return 0;
}求最大值和最小值
c
/*
求最值问题;
最大值,最小值;
浮点数,数组;
2021年11月26日20:40:48
*/
//解法一
#include <stdio.h>
int main()
{
float nums[10],max=0;
int i,temp;
printf("请输入数的个数:");
scanf("%d",&temp);
for (i=0;i<temp;i++)
{
scanf("%f",&nums[i]);
}
float min=nums[0];
for (i=0;i<temp;i++)
{
if (max<nums[i])
{
max = nums[i];
}
if (min>nums[i])
{
min = nums[i];
}
}
printf("最小值是:%.2f\n最大值是:%.2f\n",min,max);
}
//解法二(冒泡排序)
#include <stdio.h>
int main()
{
int nums[10];
int i,j,t,min,max;
printf("请输入10个数:\n");
for (i=0;i<10;i++)
{
scanf("%d",&nums[i]);
}
for (j=1;j<10;j++)
{
for (int i=0;i<10-j;i++)
{
if (nums[i]>nums[i+1])
{
max = nums[i+1];
nums[i+1] = nums[i];
nums[i] = max;
}
}
}
printf("排列后的顺序为:");
for (int t = 0; t < 10; ++t)
{
printf("%d ",nums[t]);
}
printf("\n");
printf("最小值是:%d\n",nums[0]);
printf("最大值是:%d\n",nums[9]);
}投票系统
c
//关键数据:
//int n:选民数
//int a[100],选民投票数据
//int b[6],候选人得票数
#include <stdio.h>
int main ()
{
int i,n,a[100],b[6]={0,0,0,0,0,0};
printf("投票人的数目:\n");
scanf ("%d",&n);
printf("请输入 1 、2、3、4、5选择候选人 ,0=弃权:\n");
for(i=0;i<n; i++)
{
int k;
scanf ("%d",&k);
a[i]=k;
if( k>0&&k<6) b[k]++;
else b[0]++;
};
int j,max=0;
for(i=1;i<6;i++)
{
if(max<b[i])
{
max=b[i];
j=i;
}
}
char *name[] = {"废票","一号","二号","三号","四号","五号"};
for(i=1;i<6;i++)
{
printf("%s选手的票数是%d\n",name[i],b[i]);
}
printf("废弃的票数是%d\n\n",b[0]);
printf("获胜者是%s\n\n",name[j]);
}