C语言综合练习

1、输入终值,输出所有能被7整除的数值及其和

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//定义整型终值
	int final_value;
	printf("输入终值:");
	//输入终值
	scanf("%d",&final_value);
	
	//判断终值内所有能被7整除的数值及其和
	//定义终值内的数字num,count用来计算被7整除的个数,sum用来求和
	int num, count=0, sum=0;
	for(num=1; num<=final_value; num++){
		if( num%7==0 ){ 	//判断num是否被7整除
			printf("%5d ",num); //能被7整除,打印这个数
			sum += num; 	//求和
			count++; 		//个数+1
			//每5个换行输出
			if(count%5==0){ 	
			printf("\n");
			}
		}
	}

	putchar('\n'); 	//强制换行,count不足5个时强制与num换行输出
	//输出sum
	printf("%d以内能被7整除的数值和是%d\n",final_value,sum);
	
	return 0;
}

结果如下:

2、注册账号时需输入6位密码,根据密码组成验证其安全等级

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//定义一个字符数组用来存储密码
	char a[16];
	
	//用来计算密码中数字、字母和其他字符的个数
	int count1=0, count2=0, count3=0;

	//flag用来进入循环
	//flag1标记密码中是否有数字
	//flag2标记密码中是否有字母
	//flag3标记密码中是否有其他字符
	int flag=0,flag1=0, flag2=0, flag3=0;
	while(flag == 0){
		//下标
		int i=0;
		printf("请输入密码:");

		//输入密码,并对不同字符计数
		while(a[i-1] != '\n' || i==0) 
		{
			a[i] = getchar();
		
			//对数字进行计数
			if(a[i]>='0' && a[i]<='9'){ 
				flag1 = 1;
				count1++;
			}

			//对字母进行计数
			else if( (a[i]>='A' && a[i]<='Z') || (a[i]>='a' && a[i]<='z') ){ 	
				flag2 = 1;
				count2++;	
			}

			//while循环最后一次判断回车字符,但回车字符并不是我们的密码位,这里对它记录以免影响判断密码长度
			else if(a[i] == '\n'){
			}

			//对其他字符进行计数
			else{ 		
				flag3 = 1;
				count3++;
			}
		
			i++;
		}
		//计算密码长度
		int sum = count1 + count2 + count3;
		
		//归零
		count1 = 0 , count2 = 0 , count3 = 0; 

		//判断密码长度是否符合要求和验证密码等级
		if( sum == 6 ){
			//只有数字
			if( flag1==1 && flag2==0 && flag3==0){
				printf("\t输入的六位密码 等级验证为:低\n");
			}
			//有数字和密码
	 		if( flag1==1 && flag2==1 && flag3==0 ){
				printf("\t输入的六位密码 等级验证为:中\n");
			}
			//有数字、密码和其他字符
			if( flag1==1 && flag2==1 && flag3==1 ){
				printf("\t输入的六位密码 等级验证为:高\n");
				flag = 1;
			}
		}

		else{
			printf("\t密码长度不符合要求\n");
			flag1 = 0, flag2 = 0, flag3 = 0;
		}
	}
	return 0;
}

结果如下:

3、神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//定义长度为6的整型数组,并初始化
	int a[6];
	//下标
	int i;
	//循环输入6位顾客的满意度
	for(i=0; i<6; i++){
		printf("请输入第%d为顾客的满意度:",i+1);
		scanf("%d",&a[i]);
	} 

	//满意度从小到大排序
	for(int ts=1; ts<6; ts++){ 	//趟数
		for(i=0; i<6-ts; i++){ 	//下标
			if( a[i]  > a[i+1] ){ 	//如果a[i]>a[i+1],两数交换
				int k=a[i];
				a[i] = a[i+1];
				a[i+1] = k;
			}
		}
	}

	printf("本次满意度调差由低到高的分数值是:");
	int count=0; 	//用于计算满意度大于90的个数
	for(i=0; i<6; i++){ 	//循环输出
		printf("%2d ",a[i]);	
		if(a[i]>=90){ 	//计算满意度大于90的个数
			count++;
		}
	}
	putchar('\n');
	
	//满意度占比
	float satis;
	satis = (float)count / 6.0 * 100 ; 	//计算满意度占比是否大于90
		//如果大于等于90,输出保持现有服务质量水平,小于90,输出服务质量有待改进
		if( satis >= 90.00 ){ 
			printf("满意度为%.2f%%\n",satis);
			printf("保持现有服务水平\n");
		}else{
			printf("满意度为%.2f%%\n",satis);
			printf("服务质量有待改进\n");
		}
		
	return 0;
}

结果如下:

4、输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//定义N表示数组长度
	int N;
	printf("请输入数组长度:");
	scanf("%d",&N);
	
	//定义数组a存储数组元素
	int a[N];
	int i; 	//数组a的下标
	printf("请依次输入数组元素:");

	//循环输入数组元素
	for(i=0; i<N; i++){
		scanf("%d", &a[i]);
	}

	//循环输出是3倍数的元素
	int b[10000]={0};
	int j=0; 	//数组b的下标
	printf("数组中是3倍数的元素包含:");
	for(i=0; i<N; i++){
		if( a[i]  % 3 == 0 ){ 	//判断元素是否是3的倍数
			b[j] = a[i]; 		//把是3的倍数的元素存到数组b里面
			printf("%d ",b[j]);
			j++; 	//此时j为数组b的长度
			}
	}
	putchar('\n');

	//判断数组b中元素的最值	
	int k=0; 	//数组b的新下标
	//冒泡排序找到最值
	for(int ts=1; ts<j; ts++){
		for(k=0; k<j-ts; k++){
			if(b[k] > b[k+1]){
				int t = b[k];
				b[k] = b[k+1];
				b[k+1] = t;
			}
		}
	}
	
	//最大值为b[j-1],最小值为b[0]
	printf("max=%d min=%d\n",b[j-1],b[0]);
	return 0;
}

结果如下:

5、输入操作数及运算符完成数值的加、减、乘、除运算

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//提示输入第一个操作数
	float a;
	printf("请输入第一个操作数:");
	scanf("%f",&a);
	
	//提示输入运算符
	char ch;
	printf("请输入运算符[加-P/p 减-S/s 乘-N/n 除-D/d]:");
	scanf(" %c",&ch);

	//提示输入第二个操作数
	float b;
	printf("请输入第二个操作数:");
	scanf("%f",&b);
	
	//定义sum和
	float sum=0;
	switch(ch){
		//正常计算两数相加并输出结果
		case 'P': case 'p': 
			sum=a+b;
			printf("%.2f+%.2f=%.2f\n",a,b,sum);
		break;
		//正常计算两数相减并输出结果
		case 'S': case 's': 
			sum=a-b; 
			printf("%.2f-%.2f=%.2f\n",a,b,sum);
		break;
		//正常计算两数相乘并输出结果
		case 'N': case 'n': 
			sum=a*b;
			printf("%.2f*%.2f=%.2f\n",a,b,sum);
		break;
		//正常计算两数相除并输出结果
		case 'D': case 'd': 
			if(b==0){ //如分母为0则输出提示信息“分母不能为零!”
				printf("分母不能为0!\n");
			}else{
				sum=a/b;
				printf("%.2f/%.2f=%.2f\n",a,b,sum);
					}
		break;

		default :printf("输入有误,请重新输入:"); 	break;
	}


	return 0;
}

结果如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值