当前位置: 首页 > ds >正文

Day10_C语言基础

1.思维导图

2.2.argc和argv的问题

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{int ret=0;int num1=atoi(argv[1]);int num2=atoi(argv[3]);if(argc!=4){printf("输入的参数不符合标准%s\n",argv[0]);return 1;}if(strcmp((argv[2]),"+")==0){ret=num1+num2;printf("%d+%d=%d\n",num1,num2,ret);}else if(strcmp(argv[2],"*")==0){ret=num1*num2;printf("%d*%d=%d\n",num1,num2,ret);}                                                                 else if(strcmp(argv[2],"/")==0){if(num2==0){printf("除数的不能是零\n");return 1;}ret=num1/num2;printf("%d/%d=%d\n",num1,num2,ret);}else if(strcmp(argv[2],"%")==0){if(num2==0){printf("被取模数不能是零\n");return 1;}ret=num1%num2;printf("%d%%%d=%d\n",num1,num2,ret);}else{printf("输入的参数不符合标准%s\n",argv[2]);return 1;}return 0;
}

方法二:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>int main(int argc, const char *argv[])
{int ret = 0;int num1 = atoi(argv[1]);int num2 = atoi(argv[3]);// 检查命令行参数数量是否符合要求if(argc != 4) {printf("输入的参数不符合标准%s\n", argv[0]);return 1;}// 使用 switch case 处理不同运算符switch (*(argv[2])) {case '+':ret = num1 + num2;printf("%d+%d=%d\n", num1, num2, ret);                           break;case '*':ret = num1 * num2;printf("%d*%d=%d\n", num1, num2, ret);break;case '/':if (num2 == 0) {printf("除数不能是零\n");return 1;}ret = num1 / num2;printf("%d/%d=%d\n", num1, num2, ret);break;case '%':if (num2 == 0) {printf("被取模数不能是零\n");return 1;}ret = num1 % num2;printf("%d%%%d=%d\n", num1, num2, ret);break;default:printf("输入的参数不符合标准%s\n", argv[2]);return 1;}return 0;
}

http://www.xdnf.cn/news/13305.html

相关文章:

  • 【黑客与安全】Linux系列命令之进程相关命令
  • 【论文阅读】:Weighted Graph Cuts without Eigenvectors:A Multilevel Approach
  • 如何使用Qwen-VL 2.5进行图像分割
  • 使用Python构建高效词汇表:N-Gram词频统计实战
  • 力扣 1456. 定长子串中元音的最大数目 的多解
  • 图数据在人工智能中的应用场景
  • 苍穹外卖-day03
  • 国防科技大学计算机基础课程笔记02信息编码
  • 基于梯度的中毒攻击
  • vue3+vite项目中使用.env文件环境变量方法
  • React Native 是什么?为什么学它?
  • 非功能需求
  • Axure设计案例之词云图设计
  • bed文件排序
  • 比较数据迁移后MySQL数据库和OceanBase数据仓库中的表
  • 解决ubuntu20.04无法唤醒的问题的一种方法
  • 【Java基础】​​向上转型(Upcasting)和向下转型(Downcasting)
  • Rust 学习笔记:关于共享状态并发的练习题
  • 多模态大语言模型arxiv论文略读(112)
  • 13.10 LangGraph多轮对话系统实战:Ollama私有部署+情感识别优化全解析
  • 在软件开发中正确使用MySQL日期时间类型的深度解析
  • 什么是知识产权管理系统?知识产权管理系统有哪些功能?
  • 公司内网OA办公系统(本地服务器没有公网IP)如何实现异地外网访问?
  • MySQL数据库基础(三)———数据行操作
  • 本地项目push到git
  • 深度学习在微纳光子学中的应用
  • 6个月Python学习计划 Day 18 - 项目实战 · 学生成绩管理系统(OOP版)
  • Linux——I/O复用函数
  • 245. 2019年蓝桥杯国赛 - 数正方形(困难)- 递推
  • RocketMQ基础命令