6.7-6.10作业

cpp 复制代码
/*1.使用switch实现银行系统,默认用户为A,密码为1234,余额2000
如果登录失败,则直接结束
如果登录成功,则显示银行页面
1.查询余额
2.取钱
3.存钱
如果是1,则打印余额
如果是2,则输入取钱金额,如果金额大于存款则输出余额不足,否则输出剩余金钱
如果是3,则输入存款金额,输出存款后的金*/
int main(int argc, const char *argv[])
{
    char user=0;
    int passwd=0;
    float balance=2000;
    float qu_money=0;                                                         
    float cun_money=0;

    printf("请输入用户及密码:");
    scanf("%*c%c %d",&user,&passwd);

    if('A'==user && 1234==passwd)
    {
        printf("1.查询余额\n");
        printf("2.取钱\n");
        printf("3.存钱\n");
        int num=0;
        printf("请选择服务:");
        scanf("%d",&num);

        switch(num)
        {
        case 1:printf("余额:%.3f\n",balance);break;
        case 2:printf("输入取钱金额:\n");\
               scanf("%f",&qu_money);\
               if(qu_money>balance)
                    printf("余额不足\n");
               else
                   printf("%.3f\n",balance-qu_money);\
                   break;
        case 3:printf("输入存款金额:\n");\
               scanf("%f",&cun_money);\
               printf("%.3f\n",balance+cun_money);\
                   break;
        }
    }
    else
    {
        printf("登录失败\n");
        exit(0);
    }
    return 0;
}
                                                                              
                                                                              
  1. 输入一个日期,输出这是这一年的第几天?
cpp 复制代码
#include <stdio.h>

int main() {
    int year=0, month=0, day=0;
    int dayNumber=0;
    printf("请输入日期(格式:年/月/日): ");
    scanf("%d/%d/%d", &year, &month, &day);

    // 根据月份计算天数
    switch (month) {
        case 12: dayNumber = 30; // 十一月
        case 11: dayNumber += 31; // 十月
        case 10: dayNumber += 30; // 九月
        case 9:  dayNumber += 31; // 八月
        case 8:  dayNumber += 31; // 七月
        case 7:  dayNumber += 30; // 六月
        case 6:  dayNumber += 31; // 五月
        case 5:  dayNumber += 30; // 四月
        case 4:  dayNumber += 31; // 三月
        case 3:  // 二月
            if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
                dayNumber += 29; // 闰年
            } else {
                dayNumber += 28; // 非闰年
            }
        case 2:  dayNumber += 31; // 一月
        default: break;
    }

    // 加上当月天数
    dayNumber += day;

    printf("这是这一年的第 %d 天。\n", dayNumber);

    return 0;
}


3、输入一个表达式,实现计算器+-*/%

例如:1+2,则输出3

5/2, 则输出2.5

cpp 复制代码
  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 /*输入一个表达式,实现计算器+- * /%
  4 
  5 例如:1+2,则输出3
  6 
  7 5/2, 则输出2.5*/
  8 int main() {
  9     char operation;
 10     double num1, num2;
 11 
 12     printf("请输入一个表达式(例如 1+2): ");
 13     scanf("%lf %c %lf", &num1, &operation, &num2);
 14 
 15     switch(operation) {
 16         case '+':
 17             printf("结果: %.2lf\n", num1 + num2);
 18             break;
 19         case '-':
 20             printf("结果: %.2lf\n", num1 - num2);
 21             break;
 22         case '*':
 23             printf("结果: %.2lf\n", num1 * num2);
 24             break;
 25         case '/':
 26             if(num2 != 0.0) {  // 检查分母是否为零
 27                 printf("结果: %.2lf\n", num1 / num2);
 28             } else {
 29                 printf("除数不能为0。\n");
 30             }
 31             break;
 32         case '%':
 33             if((int)num2 != 0) {  // 检查模数是否为零
 34                 printf("结果: %.0d\n", (int)num1 % (int)num2);
 35             } else {
 36                 printf("模数不能为0。\n");
 37             }
 38             break;
 39         default:
 40             printf("无效的操作符。\n");
 41     }
 42                                                                 
 43     return 0;
 44 }
~                                                                   
~                                                                   
~                                                                   
  1. 下面代码执行后,a\b\c的结果是?

int a=5,b=7,c

c=a+++b

这段代码在C语言中会产生未定义行为,因为表达式a++ + b没有明确的顺序点
5.

代码如下

void main()

{

int c=9,d=0;

c=c++%5;

d=c;

printf("d=%d\n",d);

}

d=4
6.

.给定一个整数,判断它是否被3、5、7整除,并输出一下信息 (笔试)

1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)

2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开)

  1. 只能被其中一个整数整除(输出这个除数)

4.不能被任何数整除,输出小写字母n

案例如下:

输入:105

输出:3 5 7

cpp 复制代码
1 #include <stdio.h>
2 
3 /*.给定一个整数,判断它是否被3、5、7整除,并输出一下信息 (笔试)
4 1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)
5 2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开)
6 3. 只能被其中一个整数整除(输出这个除数)
7 4.不能被任何数整除,输出小写字母n
8 案例如下:
9 输入:105
0 输出:3 5 7*/
1 
2 int main() {
3     int num;
4     scanf("%d", &num);
5 
6     int count = 0;
7     if (num % 3 == 0) {
8         printf("3 ");                                                                                          
9         count++;
0     }
1     if (num % 5 == 0) {
2         printf("5 ");
3         count++;
4     }
5     if (num % 7 == 0) {
6         printf("7 ");
7         count++;
8     }
9 
0 
1     return 0;
2 }


7.

b=10,c=12,d=120
8.

c=-75 a=181

d=5;

e=(++d)++;

增量操作数需要左值
9.设有以下语句:int a=3,b=6,c;c=a^b<<2;则c的二进制值是______。

cpp 复制代码
a = 0b011 // 3的二进制表示
b = 0b110 // 6的二进制表示

a ^ b = 0b101 // 异或结果
(a ^ b) << 2 = 0b10100 // 将异或结果左移2位

c=0b10100

相关推荐
sp_fyf_202432 分钟前
计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-11-01
人工智能·深度学习·神经网络·算法·机器学习·语言模型·数据挖掘
香菜大丸1 小时前
链表的归并排序
数据结构·算法·链表
jrrz08281 小时前
LeetCode 热题100(七)【链表】(1)
数据结构·c++·算法·leetcode·链表
oliveira-time1 小时前
golang学习2
算法
南宫生2 小时前
贪心算法习题其四【力扣】【算法学习day.21】
学习·算法·leetcode·链表·贪心算法
懒惰才能让科技进步3 小时前
从零学习大模型(十二)-----基于梯度的重要性剪枝(Gradient-based Pruning)
人工智能·深度学习·学习·算法·chatgpt·transformer·剪枝
Ni-Guvara3 小时前
函数对象笔记
c++·算法
泉崎3 小时前
11.7比赛总结
数据结构·算法
你好helloworld3 小时前
滑动窗口最大值
数据结构·算法·leetcode
AI街潜水的八角4 小时前
基于C++的决策树C4.5机器学习算法(不调包)
c++·算法·决策树·机器学习