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;
}
结果如下: