c语言练习1

个人水平有限,代码仅供参考,如有错误请多多谅解!!!!!

个人水平有限,代码仅供参考,如有错误请多多谅解!!!!!

个人水平有限,代码仅供参考,如有错误请多多谅解!!!!!

1.从键盘输入一个小写字母,转化为一个大写字母

# include <stdio.h>
 int main(){
 	char a;
 	scanf("%c",&a);
 	printf("%c",a-32);// 大写字母与小写字母差32
 }

2.从键盘输入两个整数,输出最小值

# include <stdio.h>
 int main(){
 int a,b,max;
 scanf("%d,%d",&a,&b);
 max=a>b?a:b;
 printf("%d",max);
 
 }

3.对于给定的整数N 计算s=1!+2!+...N!.

# include <stdio.h>
 int main(){
int n,s,p,i;
scanf("%d",&n);
p=1;
s=0;
for (i=1;i<=n;i++){
	p=p*i;// i的阶层
	s+=p;//总和
}
printf("%d",s);
 
 }

4. 从输入的整数数据中统计大于0的个数和小于0的个数,用输入0来结束输入,用i统计大于0的个数,j 小于0的个数

# include <stdio.h>

main(){
	int i,j,num;
	i=0;j=0;
	scanf("%d",&num);
	while(num!=0){
		
		if (num >0)i++;
		
		else{
			j++;	
		}
	scanf("%d",&num);	
			
	}
	printf("大于0的有%d个,小于0的有%d个",i,j);
}

5.

# include <stdio.h>
#include <math.h>
 main(){
float a,b,c,t,x1,x2;

scanf("%f,%f,%f",&a,&b,&c);
t=b*b-4*a*c;
if (a==0)
	printf("不是二次方程");	
else if(t>0){
	x1=(-b+sqrt(t))/(2*a);    
	        //求解两个实根
	        
	x2=(-b-sqrt(t))/(2*a);
	printf("有两个不相等的实根%f,%f",x1,x2);
}   
else if (t==0){
	  	printf("有两个相同的根:%8.4f\n",-b/(2*a));}
	  	
	  	
else {
printf("有共轭负根");
	
}	  	
 
 }

6.某学校需要搬运图书,男教师一人3个,女教师一人2个,学生两人一个,问45人正好搬45箱有多少种搬法(每人至少一箱).

# include <stdio.h>

 main(){  	
 int men ,women,stu;
 for (men=0;men<=45;men++){
 	for (women=0;women<=45;women++){
	 	for (stu=0;stu<=45;stu++){
		 	if ((men+women+stu==45) &&  (men*3+women*2+stu*0.5==45)&&(men*women*stu !=0))
		 	
			 printf("men=%d  women=%d  stu=%d\n", men, women, stu);
			 
		 }
	 }
 }
 }

7.求1~100中九出现的次数

# include <stdio.h>
 int main(){
int s,i;//s:次数

s=0;
for (i=1;i<=100;i++){
	//个位数是 9
    if (i%10==9){ 
	s++;
	continue;// 加 continue 99 算一次
             // 不加 continue 99 算两次
	}
  
    //十位是 9
	if(i/10==9)s++;
	
}

printf("%d",s);
 
 }

8.一个球从100m的高处自由落下,每次着地后又跳回到原高度的一半在落下,编写程序,求当它第10次着地时反弹多高?全程共经过多少米?

# include <stdio.h>


int main(){
	float s=100,h=s/2;
	//第一次已掉落100m
	for (int i=2;i<=10;i++){
	      s=s+2*h;
	      h/=2;
	    
}

    printf("第10次落地时共经过%lf米\n",s);
	printf("第10次落地时反弹%lf米\n", h);

}

9 .

#include <stdio.h>
main(){
	int num,temp,sum;
	int arr[500]={0};//小于13的默认等与0
	int s=0;//一个有几个数
	scanf("%d",&num);
	
	//找出符合的数
	for (int i=1;i<=num;i++){
		if (i%13==0||i%17==0){
			printf("hhh");
			arr[s]=i;
			s++;	
		}	
	}
//	printf("%d\n",s);
	//冒泡排序 从大到小排	
  
   sum=0;
   if (s>10){
   	 for (int i=0;i<s-1;i++){
	      	for (int j=0;j<s-i-1;j++){
	   	   	
	   	   	if (arr[j]<arr[j+1]){
	   		   	temp=arr[j];
	   		   	arr[j]=arr[j+1];
	   		   	arr[j+1]=temp;
	   		   }
	   	   }
	      }
   	
   	 for (int i=0;i<10;i++){
	      	sum+=arr[i];
	      	
	      }
   }else{
   	for (int i=0;i<=s;i++){
	   	      	sum+=arr[i];
	   	      	
	   	      }
   }
  
   printf("%d",sum);
}
# include<stdio.h>
int main(){
	int k,s=0,n=0;
	scanf("%d",&k);
	while(n<10){
		if(k%13==0 || k%17 ==0){
			s+=k;
			n++;
			
		}
		k--;
		if(k<13)break;
		
	}
	printf("%d",s);
	
}

 

10.国王的奖赏

#include <stdio.h>
main(){
	float num;//一共有几吨粮食
	float t=0.1; // t:可以得到的粮食的数量  0.1:第一个格放的粮食
	int p=1;
	int i;
	scanf("%f",&num);
    //从第二个格开始
	for (i=2;num>0;i++){
		p=p*2;
		t+=p*0.1;
		num-=t/1000000;
		
	}
	printf("%d",i);
	
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值