9月7日练习题

1.题目描述:输入终值,输出所有能被7整除的数值及其和

1 #include<stdio.h>
  2 
  3 int main(int agrc,const char *argv[])
  4 {
  5         printf("请输入值:");
  6         int a;//定义变量a用来接收输入的值
  7         scanf("%d",&a);
  8         int num=0;//用来存储能被7整除的数值的和
  9         int ind=0;//用来记录输出多少次已便换行
 10         for(int i=1;i<=100;i++){
 11                 //通过对7取模是否等于0判断能否被7整除
 12                 if(i%7==0){
 13                         //打印输出能被7整除的数
 14                         printf("%2d ",i);
 15                         ind++;
 16                         //对能对7取模的数进行相加求和
 17                         num+=i; 
 18                         //每输入五个换一次行
 19                         if(ind%5==0){
 20                                 printf("\n");
 21                         }
 22                 }
 23 
 24 
 25         }
 26 
 27         printf("\n");
 28         //输出能被7整除的和
 29         printf("%d以内能被7整除的数值和是%d:\n",a,num);
 30  
 31  
 32  
 33         return 0;
 34 }

2.题目描述:  注册账号时需输入6位密码,根据密码组成验证其安全等级
  1 #include<stdio.h>
  2 
  3 
  4 
  5 int main(int agrc,const char *argv[])
  6 {
  7         //此变量接收用户密码
  8         char pass;
  9         //此变量判断密码长度是否正确
 10         int i=0;
 11         //定义一个循环,可多次输入密码
 12         while(1){
 13                 //变量归零方便多次判断密码长度
 14                 i=0;
 15                 //以下三个变量x判断是否有数字,y判断是否有字母,z判断是否有特殊字符
 16                 int x=0;
 17                 int y=0;
 18                 int z=0;
 19                 printf("请输入六位数密码长度:\n");
 20 
 21                 //定义内层循环配合getchar()可多次输入
 22                 while(1){
 23                         //用getchar让用户输入密码
 24                         pass = getchar();
 25                         //判断是否回车,用于接触内层循环
 26                         if(pass=='\n'){
 27                                 break;
 28                         }
 29 
 30                         //判断是否有数字
 31                         if(pass>='0'&&pass<='9'){
 32                                 x=1;
 33                         }
 34 
 35                         //判断是否有字母
 36                         if(pass>='a'&&pass<='z'){
 37                                 y=1;
 38                  
 39                         }
 40                  
 41                         //判断是否有特殊字符
 42                         if(pass>=32&&pass<=47){
 43                                 z=1;
 44                  
 45                         }       
 46 
 47                         printf("%c",pass);
 48                         i++;
 49                 }
 50 
 51                 //判断密码长度是否正确,及其密码的等级
 52                 if(i>6||i<6){
 53                         printf("密码长度有误");
 54                 }else if(x==1&&y==1&&z==1){
 55                         printf("输入的密码中含有字母数字及其他字符 等级验证:高\n");
 56 
 57                 }else if(x==1&&y==1){
 58                         printf("输入六位数密码包含数字,字母,等级:中");
 59 
 60                 }else if(x==1){
 61                         printf("输入六位数密码,等级:低");
 62 
 63                 }
 64                 printf("\n");
 65 
 66                 //确认是否退出,0退出,1继续输入密码
 67                 printf("按1继续,按0退出\n");
 68                 int ac;
 69                 scanf("%d",&ac);
 70                 if(ac==0){
 71                         printf("谢谢使用^o^\n");
 72                         return 0;
 73 
 74                 }
 75 
 76                 //这个getchar用来吸收上面按0后按下的回车键
 77                 getchar();
 78         }
 79 
 80         return 0;
 81 }

3.题目描述:  神州租车公司为提升服务质量近期展开满意度调查活动,请输入近期租车6位顾客满意度进行相关运算
  1 #include<stdio.h>
  2 
  3 #define N 6
  4 
  5 //快速排序
  6 void kp(int arr[],int let,int rig){
  7         //判断起始下标和末尾下标是否相等,相等则结束
  8         if(let>=rig){
  9                 return;
 10         }
 11 
 12         //将开始下标赋给i,结尾下标赋给j
 13         int i=let;
 14         int j=rig;
 15 
 16         //保存一个i位置的元素用于比较
 17         int key=arr[i];
 18 
 19         //循环整体思路,假设key是中间的元素,把比key小的放到他左边,把比key大的放到他右边
 20         //最终形成数组左边都是比key小的,数组右边都是比key大的
 21         while(i<j){
 22                 while(i<j&&arr[j]>=key){
 23                         j--;
 24                 }
 25                 arr[i]=arr[j];
 26 
 27                 while(i<j&&arr[i]<=key){
 28                         i++;
 29                 }
 30                 arr[j]=arr[i];
 31         }
 32 
 33         arr[i]=key;
 34         //将key左边和右边看做两个数组传递给函数本身再进行调用
 35         kp(arr,0,i-1);
 36         kp(arr,i+1,rig);
 37 
 38 
 39 }
 40 
 41 
 42 int main(int argc,const char *argv[])
 43 {
 44 
 45 
 46 
 47 
 48         printf("请输入满意度:\n");
 49         //定义数组用于接收用户的满意度
 50         int arr[N];
 51         //在循环内部通过scanf的输入对数组arr进行复制
 52         for(int i=0;i<N;i++){
 53                 printf("请输入第%d位客户的满意度:",i+1);
 54                 scanf("%d",&arr[i]);
 55         }
 56 
 57         //调用排序方法对用户的满意度由第到高进行排序
 58         kp(arr,0,N-1);
 59 
 60         printf("本次满意度调查由低到高分数值是:");
 61         //定义此变量用于统计满意用户的个数用于计算用户满意的百分比
 62         float sat=0;
 63         for(int i=0;i<N;i++){
 64                 //如果满意度大于90视为满意那么sat++
 65                 if(arr[i]>=90){
 66                         sat++;
 67                 }
 68                 //输出用户的满意度
 69                 printf("%d ",arr[i]);
 70         }
 71         printf("\n");
 72         //计算用户满意度百分比
 73         float f=sat/N*100;
 74         printf("满意度为:%f%%\n",f);
 75 
 76         //判断整体是否满意
 77         if(f>=90.00){
 78                 printf("保持现有服务水准\n");
 79         }else{
 80                 printf("服务质量有待改进\n");
 81         }
 82 
 83 
 84 
 85 
 86 
 87 
 88 
 89         return 0;
 90 }


4.题目描述:  输入一批数,输出是3倍数的数值,计算3倍数中的最大值、最小值
  1#include<stdio.h>
  2 
  3 
  4 int main(int argc,const char *argv)
  5 {
  6         int len;
  7 
  8         printf("请输入数组长度:");
  9         scanf("%d",&len);
 10         printf("\n");
 11         int arr[len];
 12         printf("请以此输入数组的元素值:");
 13         //利用循环输入给数组初始化
 14         for(int i=0;i<len;i++){
 15                 scanf("%d",&arr[i]);
 16         }
 17 
 18         //定义最大值最小值
 19         int max=0;
 20         int min=0;
 21 
 22         printf("\n");
 23         printf("数组中是3倍数的元素包含:");
 24         for(int i=0;i<len;i++){
 25                 //通过判断对3取模是否为0判断是否为3的倍数
 26                 if(arr[i]%3==0){
 27                         printf("%d  ",arr[i]);
 28 
 29                         //寻找最大值
 30                         if(arr[i]>max){
 31                                 max=arr[i];
 32                         }
 33 
 34                         //寻找最小值,min如果等于0不进行判断直接赋值
 35                         if(min==0){
 36                                 min=arr[i];
 37                         }else if(min>arr[i]){
 38                                 min=arr[i];
 39                         }
 40                 }
 41         }
 42 
 43         printf("\n");
 44         printf("数组元素中3的最小倍速是:%d,最大倍数是:%d\n",min,max);
 45  
 46 
 47 
 48         return 0;
 49 }

5.题目描述:输入操作数及运算符完成数值的加、减、乘、除运算
  1 #include<stdio.h>
  2 
  3 int main(int argc,const char* argv[])
  4 {
  5         //定义两个float变量用于存储操作数
  6         float a,b;
  7         //定义字符用于存储运算符
  8         char c;
  9         printf("请输入第一个操作数:");
 10         scanf("%f",&a);
 11         printf("请输入运算符[加-P/p 减-S/s 乘-M/m 除-D/d]:");
 12         scanf(" %c",&c);
 13         printf("请输入第二个操作数:");
 14         scanf("%f",&b);
 15         printf("运算结果\n");
 16 
 17         //利用switch来对运算符进行判断
 18         switch(c){
 19                 case 'P':
 20                 case 'p':
 21                         printf("%.2f+%.2f=%.2f\n",a,b,a+b);
 22                         break;
 23                 case 'S':
 24                 case 's':
 25                         printf("%.2f-%.2f=%.2f\n",a,b,a-b);
 26                         break;
 27                 case 'M':
 28                 case 'm':
 29                         printf("%.2f*%.2f=%.2f\n",a,b,a*b);
 30                         break;
 31                 case 'D':
 32                 case 'd':
 33 
 34                         if(b!=0){
 35                                 printf("%.2f/%.2f=%.2f\n",a,b,a/b);
 36                         }else{
 37                                 printf("分母不能为0\n");
 38                         }
 39                         break;
 40 
 41                 default:
 42                         printf("符号输入有误\n");
 43 
 44 
 45         }
 46 
 47 
 48         return 0;
 49 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值