c语言中乘号的作用,c:乘号
写在最前:这是我c语言暑假作业的最后一题了,我几乎是一天完成一题没有间断过,除了在火车上的特殊情况。这意味着我的暑假接近尾声了,期待我的大二新生活。
28、任意给一个9位整数;再在其中插入4个乘号,使分得的5个整数的乘积最大;
输入:正整数n;
输出:被分得的5个整数、得到的最大乘积值。
另:试编写一方法,任给一个自然数(不定长、以字符串的形式作为此方法的参数),编程确定在其中插入一个乘号(),使得被分割的两个自然数之积最大,要求输出其二者相乘的算式形式。(如7282144:7282144=5914368)
题目分析:
在9位数中插入4个乘号
我忍不住想起了我做的第19题
那题要求在一个6位数中随机插入2个加号
然后相加求最大值
我就把加号在不同位置的情况都写了一遍
那叫一个麻烦
今天这题很相似
不过更复杂
这么长的数字
我肯定是用字符串来处理了
可是想起上一次把数组转换为整型数字时的麻烦
我决定找方法简化
运气不错,
我学到了一个新的库函数
int atoi(const char *str)
开头要导入头文件 stdlib.h
这个函数可以把字符串转换为整型的数字
我用字符串输入的9位数
插入4个乘号后分割为5个数字
我只需要把字符串分割,
转换为整型数字然后相乘
找出数值最大的就可以了
至于第2题
输入任意长度的数字
用字符串储存
然后分割为两个部分
转换为整数再相乘
把所有的情况产生的值进行比较
找出最大值
我给题目标出重点:
分割示意图:
纸上谈兵结束,
第一题代码如下:
#include
#include
#include
//定义将数字字符转化为整型数字的函数,分割出来个位数时,用这个会方便许多
int fun(char c){
int a=c-'0';
return a;
}
//定义求乘积最大的函数
void max(char *s){
char a[10];//分割的时候可能会用到这个的字符串
int s1,s2,s3,s4,s5,i,j,k,t,m1,m2,m3,m4,m5,m=0;//s1~s5记录分割后的5个数字
//最后一个乘号不确定的状态
s1=fun(s[0]);//单个字符转数字
s2=fun(s[1]);
s3=fun(s[2]);
for(i=4;i<9;i++){
j=0;
for(k=3;k
a[j++]=s[k];//分割出第4个数字
a[j]='\0';//字符串最后一定要加上 '\0' 来表示结束,我一开始没有加导致计算出错
s4=atoi(a);
j=0;
for(k=i;k<9;k++)
a[j++]=s[k];//分割出第5个数字
a[j]='\0';
s5=atoi(a);
t=s1*s2*s3*s4*s5;
if(m
m=t;//用打擂台的方法确定最大值
m1=s1;m2=s2;m3=s3;m4=s4;m5=s5;
}
}
//倒数第2个乘号不确定的状态
s1=fun(s[0]);//单个字符转数字
s2=fun(s[1]);
s5=fun(s[8]);
for(i=3;i<8;i++){
j=0;
for(k=2;k
a[j++]=s[k];//分割出第3个数字
a[j]='\0';
s3=atoi(a);
j=0;
for(k=i;k<8;k++)
a[j++]=s[k];//分割出第4个数字
a[j]='\0';
s4=atoi(a);
t=s1*s2*s3*s4*s5;
if(m
m=t;//用打擂台的方法确定最大值
m1=s1;m2=s2;m3=s3;m4=s4;m5=s5;
}
}
//第2个乘号不确定的状态
s1=fun(s[0]);//单个字符转数字
s4=fun(s[7]);
s5=fun(s[8]);
for(i=2;i<7;i++){
j=0;
for(k=1;k
a[j++]=s[k];//分割出第2个数字
a[j]='\0';
s2=atoi(a);
j=0;
for(k=i;k<7;k++)
a[j++]=s[k];//分割出第3个数字
a[j]='\0';
s3=atoi(a);
t=s1*s2*s3*s4*s5;
if(m
m=t;//用打擂台的方法确定最大值
m1=s1;m2=s2;m3=s3;m4=s4;m5=s5;
}
}
//第2个乘号不确定的状态
s3=fun(s[6]);//单个字符转数字
s4=fun(s[7]);
s5=fun(s[8]);
for(i=1;i<6;i++){
j=0;
for(k=0;k
a[j++]=s[k];//分割出第1个数字
a[j]='\0';
s1=atoi(a);
j=0;
for(k=i;k<6;k++)
a[j++]=s[k];//分割出第2个数字
a[j]='\0';
s2=atoi(a);
t=s1*s2*s3*s4*s5;
if(m
m=t;//用打擂台的方法确定最大值
m1=s1;m2=s2;m3=s3;m4=s4;m5=s5;
}
}
//打印结果
printf("%d*%d*%d*%d*%d=%d\n",m1,m2,m3,m4,m5,m);
}
int main(){
//定义变量,输入数据
char s[80];
printf("输入一个9位整数:\n");
scanf("%s",s);
//调用函数计算结果
max(s);
return 0;
}
运行测试:
这么大的数字
运算结果是否准确我无法判断
不过我数字分割的结果貌似是对的
第二题代码如下:
#include
#include
#include
//定义求乘积最大的函数
void max(char *s){
char a[80];//a临时储存分割的字符串,字符串转整型时数字会用到
int m1,m2,m=0,s1,s2,i,j,k,t,len;//定义一些要用到的变量
len=strlen(s);//输入的长度是任意的,可以用这个函数确定
for(i=1;i
k=0;
for(j=0;j
a[k++]=s[j];
a[k]='\0';//最后一定要加 \0
s1=atoi(a);//字符串转数字
k=0;
for(j=i;j
a[k++]=s[j];
a[k]='\0';
s2=atoi(a);
t=s1*s2;
if(m
m=t;//打擂台法求最大值
m1=s1;
m2=s2;
}
}
//打印结果
printf("%d*%d=%d\n",m1,m2,m);
}
int main(){
//定义变量,输入数据
char s[80];
printf("输入一个整数:\n");
scanf("%s",s);
//调用函数计算结果
max(s);
return 0;
}
运行测试:
c语言中乘号的作用,c:乘号相关推荐
- C语言的格式输出 C语言中字符的作用:
这是C语言的格式输出,%c,%y这些代表你要输出的数据的数据类型:%d 表示输出十进制有符号的整数. 1.%u 十进制无符号整数. 2.%f 表示输出浮点数. 3.%s表示输出 字符串. 4.%c表示 ...
- Context是怎么在Go语言中发挥关键作用的
Context 是 Go 语言独有的设计,在其他编程语言中很少见到类似的概念,用一句话解释 Context 在 Go 语言中的作用就是: Context 为同一任务的多个 goroutine 之间提供 ...
- [c语言]c语言中的#和##作用、参数表省略号作用
1. c语言中的# c语言中的# 用于字符串化参数 #123 相当于 "123" #define STR(X) #X print(STR(123));// 输出字符串 " ...
- 在c语言中 函数的作用是什么,C语言程序中函数的定义
C语言程序中函数的定义 C语言的函数问题是困扰很多学者的问题的,c程序中什么是函数呢?下面啦小编为大家精心推荐的c程序中函数的定义,希望能够对您有所帮助. C语言读书笔记--函数 先来看看函数的一般形 ...
- c语言中单词的作用与形式,C语言基础教程:单词的用法与规则
在C语言中,单词是由若干个有序的字符组成的,单词的集合称为词汇.C语言的单词有如下几种:标识符.关键字.运算符.分隔符.常量.字符串和注释符. 下面对上述7种单词的词法规则逐一详述,有些单词,例如,关 ...
- 指针在c语言中起什么作用,编程中指针的作用是什么?
原标题:编程中指针的作用是什么? 编程语言中,何为指针?它们都有什么用呢?其实通俗点讲,将一个椅子放进一个小房间锁上门,你若想拿出凳子,就必须有锁门的钥匙,而这钥匙就是指针. 举一个简单的例子: in ...
- c 语言中是什么作用是什么意思,在C语言中%C是什么意思
问: return在C语言中是什么意思 答: C语言中 函数的定义格式是返回值类型 函数名称(函数的参数) (void开头的函数可以不返回任何值)函数执行完成之后,靠返回值与主函数保持联系.如int ...
- 在c语言中逗号的作用,C语言逗号运算符应用优先级与运算规则理解
一.逗号运算符介绍 逗号运算符是C语言中常见的数学运算符号儿,多个运算的表达式之间可以用逗号分隔开来,然后用逗号分隔的这几个表达式可以单独进行运算,最后的运算结果取最后一个表达式的值进行返回. 逗号运 ...
- c语言中箭头的作用,为什么C中的箭头(-)运算符存在?
我将您的问题解释为两个问题:1)为什么->甚至存在,以及2)为什么.不自动取消引用指针.这两个问题的答案都有历史渊源. 为什么会->存在? 在C语言的第一个版本(1975年5月第6版Uni ...
- c 语言中引用的作用是什么,C语言为什么开头都加;#includestdio.h有什么作用?...
慕少森 stdio.h 哪些 是 头文件,里面包含一些常用的 函数例如 stdio.h里面有 scanf();printf()这些函数,没有stdio就不能用这些函数在C语言家族程序中,头文件被大量使 ...
最新文章
- matlab解决多旅游商问题,多旅行商问题的matlab程序
- python编辑器_资深程序员:学Python我推荐你用这几款编辑器
- CPU 架构 —— ARM 架构
- NYOJ 1272:表达式求值(2016河南省ACM-A)
- 光猫修改rms服务器地址大全,光猫服务器dns怎么设置教程
- 金蝶云星空根据采购价目表写入自定义采购入库单是否价目表字段
- 多级父子关系数据库设计
- 基于crontab的服务器恶意程序
- winform实现任务栏隐藏、通知栏图标及右键、类似QQ隐藏窗体等功能
- python print 格式化输出
- 计算机语言排行榜2015,2015年3月编程语言排行榜:F#排名达到11
- linux中无法联网小电脑图标不见,电脑桌面上的网络连接图标突然不见怎么解决?...
- fn映射 mac 键盘_如何在Mac OS X下修改Fn键的属性?
- Linux基础之 getopts
- (转)淘宝面试的几个算法题
- RationalDMIS 7.1 如何更改CAD模型的坐标系
- 如何恢复Mac上未保存的Word文件?
- 程序人生-我已经努力了七年
- 20190517考试ocp052碰到的题目
- uniapp清除缓存和获取数据
热门文章
- boost I 数学领域常用的六个库
- 【转载】常用精品API接口汇总
- 中文汉字 hex十六进制 互转
- 关于OpenCV3.1读取摄像头图像黑屏情况
- oracle报错ORA-39002: invalid operationORA-39070: Unable to open the log file.ORA-29283: invalid file
- 运用RapidMiner进行关联分析(算子有read csv,select attribute,fp-growth,create association rules)
- java计算机毕业设计MVC土特产交易平台系统源码+mysql数据库+系统+lw文档+部署
- 体验管理 | 以 [ 新员工入职场景 ] 为例,教你如何设计员工体验?
- ubuntu wifi图标变成问号 网速很慢
- 萧毅舟;2.22黄金原油操作策略,强势的多头何时休