1.时差的计算
#include<stdio.h>
int main()
{
int hour1,minute1;
int hour2,minute2;
scanf("%d%d",hour1,minute1);
scanf("%d%d",hour2,minute2);
int t1=hour2-hour1;
int t2=minute2-minute1;
if(t2<0){
t2=60+t2;
t1--;
}
printf("%d %d",t1,t2);
}
2.计算log2x
#include<stdio.h>
int main()
{
int x,ret=1;
scanf("%d",&x);
int t=x;
while(x>1)
{ x/2;
ret++;
}
printf("log2 of %d is %d",t,ret);
}
3.倒计时
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{ int a=60;
while(a>=0)
{ system("cls.");//清除原来的数据
system("color 5");//添加文字背景色
printf("%d",a);
Sleep(1000);//sleep的s大写
a--;
}
}
4. 统计字母,数字的个数
#include<stdio.h>
int main()
{
int letter=0,number=0,others=0,c;
while((c=getchar())!='\n')//俩重括号 先读字符串 然后整体比较
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
letter++;
else if(c>='0'&&c<='9')
number++;
else others++;
printf("%d%d%d",letter,number,others);
}
5. 读入字符串数组
#include<stdio.h>
#include<string.h>
int main()
{ char a[100]="abcdef";
int i;
for(i=0;i<(strlen(a));i++)
{
printf("%c",a[i]);
}
}
6. 倒序输出
#include<stdio.h>
int main()
{ int i;
scanf("%d",&i);
print(i);
return 0;
}
void print(int n)
{ if(n>9) print(n/10);
printf("%d ",n%10);
}
7. 打分(除去最高分最低分)
#include<stdio.h>
int main()
{int a[3],sum,max,min,average;
int i;
for(i=0;i<3;i++)
{scanf("%d",&a[i]);
}读入数组元素中有3个元素,先读a[0]
for(i=1;i<3;i++)
{if(max<a[i])max=a[i];
if(min>a[i])min=a[i];
sum+=a[i];
}进入for中max,min要做大小比较,所以对其赋初值,开始为a[0] 数组中求最大值 求和 求最小值
sum=(sum-min-max)/1;
printf("%d",sum);
}
8.有符号的求和
#include<stdio.h>
int main()
{ int n,i;
int sign=1;
double sum=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{if(i%2==0) sign=-sign;
else sign=sign;
sum+=sign*1.0/i;
}
printf("%f",sum);//sign仍为整型,使它变成浮点类型
}*/
9. 数组逆序交换元素
#include<stdio.h>
#define n 10
int main()
{
int a[n],i,t,j;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0,j=n-1;i<j;i++,j--)
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<n;i++)
{
printf("%2d",a[i]);
}
return 0;}
10. 求字符串长度
#include<stdio.h>
int main()
{ char a[]="bit";
int len=marry(a);
printf("%d",len);
}
int marry(char* str)
{
if(*str!='\0')
{ return 1+marry(str);
}
else
return 0;
}
11. 奔跑的”h"
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
int main()
{
int a=0,b=1;
while(a<=2){
system("cls");
while(b<=a){
printf(" ");
b=b+1;}
printf("h") ;
Sleep(1000) ;
a=a+1;
}
}
12.看几位数
#include<stdio.h>
int main()
{int x=0;
int n=0;
scanf("&d",x);
n++;
x/=10;//包含n为0的情况
while(x>0){n++;
x/=10;
}
printf("%d\n",n); }
13. 用宏看最大值
#include<stdio.h>
#define max(x,y) ((x)>(y))?(x):(y)
#define min(x,y) ((x)<(y))?(x):(y)
int main()
{ int a=20,b=30;
printf("%d",max(a,b));
}
14. 进制转换
#include<stdio.h>
int main()
{ int n,result=0,base=1;
double x;
do{
scanf("%lf",&x);
n=(int)x;
if(x==n)
{
while(n!=0)
{result+=(n%8)*base;
n/=8;
base*=10;
}printf("输出的八进制数为%d",result);}
else printf("你有问题") ;
}while(n!=x);
}
15. 完数的判断(一个完数的各个因子除了它本身,所有的其他因子的和为整个完数)
#include<stdio.h>
int main()
{
int m,s,i;
for(m=2;m<=1000;m++)//读入所有的数
{ s=1;//存储所有的因子,1为所有数的因子
for(i=2;i<=m/2;i++)
if((m%i)==0) s+=i;//求因子之和 m的因子为1到二分之m的整数
if(m==s)
{printf("%d ",m);//因子之和等于原数,输出
for(i=1;i<=m/2;i++)
if(m%i==0) printf("%d",i);//输出因子
printf("\n");
}
}
}
16.整数的正序分解
#include<stdio.h>
#include<math.h>
int main()
{
int x;
scanf("%d",&x);
int t=x;
int cnt=0;
do{
x/=10;
cnt++;
} while(x>0);
printf("%d\n",cnt);//算出几位数
int mask=pow(10,cnt-1);
do{
int d=t/mask;
t%=mask;
mask/=10;
printf("%d",d);
} while(mask>0);
return 0;
}
18 递归实现正序打印整数的各位
void print(int n)
{
if(n>9)
print(n/10);
printf("%d",n%10);
}*/