国王的许诺
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;//计数
double term=1;//term赋初值为1
double sum =0;//sum赋初值为0
for(n=1;n<=63;n++)//先判断后执行
{
term*=2;//后项总是前项的2倍计算累加项
sum+=term;//进行累加运算
}
printf("sum=%e",sum)//e为指数形式
}
编写一个程序,从键盘输入某个雇员的每周工作时间(以小时计)(wh)和每小时的工资数(wage),计算并输出他的周工资。若雇员每周工作小时超过40小时,则超过部分按原工资的1.5倍加班工资来计算。若雇员每周工作小时超过50小时,则超过部分按原工资的3倍的加班工资来计算。(用if…else if 语句)
#include <stdio.h>
#include <stdlib.h>
int main()
{
int wh;
int wage;
int bonus;
printf("工作时间(wh):");
scanf("%d",&wh);
printf("每小时的工资数(wage):");
scanf("%d",&wage);
if(wh>40&&wh<=50)
{
bonus=(wh-40)*wage*1.5;
wage=wh*wage;
wage+=bonus;
printf("该员工的工资是%d",wage);
}
else if(wh>50)
{
bonus=(wh-50)*wage*3;
wage=wh*wage;
wage+=bonus;
printf("该员工的工资是%d",wage);
}
else
{
wage*=wh;
printf("该员工的工资是%d",wage);
}
}
下面程序的功能为求主、次对角线元素之和
#include <stdio.h>
#include <stdlib.h>
int main()
{
static int a[ ][3]= {9,7,5,3,1,2,4,6,8};
int i,j,s1=0,s2=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
if(i==j)
{
s1=s1+a[i][j];
}
if(i==0&&j==2||i==2&&j==0||i==1&&j==1)
{
s2=s2+a[i][j];
}
}
}
printf("%d\n%d\n",s1,s2);
return 0;
}
用起泡法对10个整数排序,要求10个整数用scanf函数输入。
#include <stdio.h>
#include <stdlib.h>
int main ( )
{
int a[10];
int i,j;
int temp;
printf("请输入10个数字\n");
for(i=0; i<10; i++)//循环10次键盘读入
{
scanf("%d",&a[i]);
}
for(j=0; j<=9; j++)//一个数走一轮
{
for(i=0; i<9-j; i++)//循环两两比较
{
if(a[i]>a[i+1])
{
temp=a[i];
a[i]=a[i+1];
a[i+1]=temp;
}
}
}
for(i=0; i<=9; i++)//输出排序之后的数字
{
printf("%d,",a[i]);
}
}
统计大小写字母、空格、数字和其它字符的个数
#include <stdio.h>
#include <stdlib.h>
int main()
{
char ch;
int capletter=0,lowletter=0,sz=0,space=0,other=0;//计数用的
while((ch=getchar())!='\n')//使得程序不退出
{
if(ch>='A'&&ch<='Z')
{
capletter++;
}
else if(ch>='a'&&ch<='z')
{
lowletter++;
}
else if(ch>='0'&&ch<='9')
{
sz++;
}
else if(ch==' ')
{
space++;
}
else
{
other++;
}
}
printf("大写字母:%d 小写字母:%d 数字:%d 空格:%d 其他:%d",capletter,lowletter,sz,space,other);
return 0;
}
输入10个数字,找出最大值
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[10],i,max;
printf("请输入10个数字:\n");
for(i=0; i<=9; i++)
{
scanf("%d",&a[i]);
}
max=a[0];
for(i=1; i<10; i++)
{
if(a[i+1]>max)
{
max=a[i+1];
}
}
printf("max=%d\n",a[i]);
return 0;
}
打印斐波那契数列
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a[20]= {1,1},i;
for(i=2; i<20; i++)
{
a[i]=a[i-2]+a[i-1];
}
for(i=0; i<20; i++)
{
if(i%5==0)
{
printf("\n");
}
printf("%12d",a[i]);
}
}
逆序输出5位数
#include <stdio.h>
#include <stdlib.h>
int main()
{
int n;
printf("请输入一个数字n:");
scanf("%d",&n);
int a=n/10000;//万位
int b=n%10000/1000;//千
int c=n%1000/100;//百
int d=n%100/10;//十
int e=n%10;//个
if(n<10)//1位
{
printf("%d",e);
}
else if(n>=10&&n<100)
{
printf("%d%d",e,d);
}
else if(n>=100&&n<1000)
{
printf("%d%d%d",e,d,c);
}
else if(n>=1000&&n<10000) //4位
{
printf("%d%d%d%d",e,d,c,b);
}
else
{
printf("%d%d%d%d%d",e,d,c,b,a);
}
}
使用递归函数实现n!
#include <stdio.h>
#include <stdlib.h>
int func(int a);//定义一个递归函数
int main()
{
int t,n;//t用来接收func函数的返回值
printf("please input a n:");
scanf("%d",&n);
t=func(n);//函数调用
printf("%d!=%d\n",n,t);
}
int func(int a)
{
int s;//s用来存储阶乘的值
if(a==0||a==1)
{
s=1;
}
else if(a<0)
{
exit(1);//异常退出
}
else
{
s=a*func(a-1);//函数再一次调用自己
}
return(s);//返回值为s,返给main中的t
}
鸡兔同笼
#include<stdio.h>
int main()
{
int j,t,head,foot;//假设j只鸡,t只兔子,head表示头的数量,foot表示腿的数量.
head=100;//头
foot=240;//脚
t=(foot-2*head)/2;//假设全部都是鸡,但是最后肯定是缺少腿,用一只兔子换一只鸡,一次多两条腿,可以知道换多少次兔子,也就得出兔子的数量.
j=head-t;//鸡的数量=总的数量-兔子的数量
printf("鸡的数量是%d 兔子的数量是%d",j,t);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
int main()
{
int j,t;
for(j=0; j<=16; j++)//想想小学的时候老师教我们的画表格法
{
t=16-j;
if(2*j+4*t==40&&j+t==16)//脚和头满足的条件
{
printf("鸡的数量%d 兔子的数量%d",j,t);
}
}
}
int main()
{
int a,b,n,m;//a为兔子,b为鸡
printf("n为头: \n");
scanf("%d" ,&n);
printf("m为脚: \n");
scanf("%d" ,&m);
a = (4*n-m)/2;
b = n-a;
printf("%d ,%d",a,b);
}