c语言必备程序

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);
 }*/

Supongo que te gusta

Origin blog.csdn.net/m0_63203388/article/details/121382328
Recomendado
Clasificación