问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

C语言 拼数字

发布网友 发布时间:2022-04-25 07:12

我来回答

5个回答

热心网友 时间:2023-11-06 01:41

楼主你好。

代码如下:

#include <stdio.h>

#include <string.h>

#include <math.h>

unsigned int getNum(char* str){//从字符串中提取出unsigned int数据。

unsigned int num=0;

int i, len=strlen(str);

for(i=0;i<len;i++){

if(str[i]>='0'&&str[i]<='9'){

num*=10;

num+=str[i]-'0';

}

}

return num;

}

unsigned int getMaxFactor(unsigned int num){//获取最大因子

unsigned int i;

for(i=2;i<num;i++){//要是追求效率,这里的上限其实可以用num/2甚至sqrt(num)代替,下面也要进行相应修改。

if(num%i==0)break;

}

if(i==num)

return num;

return num/i;

}

void main(){

char str[100]={0};

unsigned int nums[100]={0};//100行,由于题目要求统一输入然后统一输出,因此需要一个缓冲区存储输出,其实这里可以动态分配空间,也可以重定向到文件中,我的unsigned int nums[100]只是一个例子。

int i=0,count;

while(1){

gets(str);

if(strlen(str)==0)break;

nums[i++]=getMaxFactor(getNum(str));

}

count=i;

for(i=0;i<count;i++){

printf("%d\n",nums[i]);

}

}


运行结果:

热心网友 时间:2023-11-28 02:39

楼主你好。

代码如下:

#include <stdio.h>

#include <string.h>

#include <math.h>

unsigned int getNum(char* str){//从字符串中提取出unsigned int数据。

unsigned int num=0;

int i, len=strlen(str);

for(i=0;i<len;i++){

if(str[i]>='0'&&str[i]<='9'){

num*=10;

num+=str[i]-'0';

}

}

return num;

}

unsigned int getMaxFactor(unsigned int num){//获取最大因子

unsigned int i;

for(i=2;i<num;i++){//要是追求效率,这里的上限其实可以用num/2甚至sqrt(num)代替,下面也要进行相应修改。

if(num%i==0)break;

}

if(i==num)

return num;

return num/i;

}

void main(){

char str[100]={0};

unsigned int nums[100]={0};//100行,由于题目要求统一输入然后统一输出,因此需要一个缓冲区存储输出,其实这里可以动态分配空间,也可以重定向到文件中,我的unsigned int nums[100]只是一个例子。

int i=0,count;

while(1){

gets(str);

if(strlen(str)==0)break;

nums[i++]=getMaxFactor(getNum(str));

}

count=i;

for(i=0;i<count;i++){

printf("%d\n",nums[i]);

}

}


运行结果:

热心网友 时间:2023-11-06 01:41

楼主你好。

代码如下:

#include <stdio.h>

#include <string.h>

#include <math.h>

unsigned int getNum(char* str){//从字符串中提取出unsigned int数据。

unsigned int num=0;

int i, len=strlen(str);

for(i=0;i<len;i++){

if(str[i]>='0'&&str[i]<='9'){

num*=10;

num+=str[i]-'0';

}

}

return num;

}

unsigned int getMaxFactor(unsigned int num){//获取最大因子

unsigned int i;

for(i=2;i<num;i++){//要是追求效率,这里的上限其实可以用num/2甚至sqrt(num)代替,下面也要进行相应修改。

if(num%i==0)break;

}

if(i==num)

return num;

return num/i;

}

void main(){

char str[100]={0};

unsigned int nums[100]={0};//100行,由于题目要求统一输入然后统一输出,因此需要一个缓冲区存储输出,其实这里可以动态分配空间,也可以重定向到文件中,我的unsigned int nums[100]只是一个例子。

int i=0,count;

while(1){

gets(str);

if(strlen(str)==0)break;

nums[i++]=getMaxFactor(getNum(str));

}

count=i;

for(i=0;i<count;i++){

printf("%d\n",nums[i]);

}

}


运行结果:

热心网友 时间:2023-11-06 01:41

#include <stdio.h>
long myStr2UInt(char*p) //抽出整数字符并拼成整数返回
{
long ui=0;
if(p&&*p)
{
do
{
char c = *p++;
if(c>='0'&&c<='9')
ui = ui*10+c-'0';
}while(*p);
}
return ui;
}
long getMaxSub(long ui) //返回最大因子,0和素数同返回本身
{
long ret;
if(ui<4)
return ui;
for(ret=ui/2; ret>1; ret--)
if(ui%ret==0)
break;
if(ret==1)
return ui;
return ret;
}
int main(int argc,char**argv)
{
char buf[1024];//只要测试的数据不超出1K,死不掉
do
{
*buf = 0;
gets(buf);
if(*buf==0||*buf=='\n') //空行退出循环
break;
printf("%ld\n",getMaxSub(myStr2UInt(buf)));
}while(1);
return 0;
}
//适用8位、16位和32位的系统编译
末日过了大家都还活着,无聊啊

热心网友 时间:2023-11-06 01:42

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int main(){

char s[120];

gets(s);

while(strlen(s)!=0){

//printf("%s\n",s);

//scanf("%s\n",s);

int sum=0,f=1;

for(int i=0;i<strlen(s);i++){

if(isdigit(s[i]))

sum=sum*10+s[i]-'0';

}

for(int i=sum-1;i>1;i--){

if(sum%i==0){

f=0;

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

break;

}

}

if(f)

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

gets(s);

}

}

emmm,这样也可以,不过个人觉得还是

zhangchaoyiay

的更简单一点。。。

热心网友 时间:2023-11-06 01:42

#include<stdio.h>
int main()
{
char str[101];

while(scanf("%s",str))
{
int i,n=0;
for(i=0;str[i]!='\0';++i)
{
if(str[i]>='0'&&str[i]<='9')
n=n*10+str[i]-'0';
}
int tag=0;
for(i=n/2;i>=2;--i)
{
if(n%i==0)
{
printf("%d\n",i);
tag=1;
break;
}
}
if(tag==0)
printf("%d\n",n);
}

}

热心网友 时间:2023-11-06 01:43

鸟语。。。

热心网友 时间:2023-11-06 01:42

#include <stdio.h>
long myStr2UInt(char*p) //抽出整数字符并拼成整数返回
{
long ui=0;
if(p&&*p)
{
do
{
char c = *p++;
if(c>='0'&&c<='9')
ui = ui*10+c-'0';
}while(*p);
}
return ui;
}
long getMaxSub(long ui) //返回最大因子,0和素数同返回本身
{
long ret;
if(ui<4)
return ui;
for(ret=ui/2; ret>1; ret--)
if(ui%ret==0)
break;
if(ret==1)
return ui;
return ret;
}
int main(int argc,char**argv)
{
char buf[1024];//只要测试的数据不超出1K,死不掉
do
{
*buf = 0;
gets(buf);
if(*buf==0||*buf=='\n') //空行退出循环
break;
printf("%ld\n",getMaxSub(myStr2UInt(buf)));
}while(1);
return 0;
}
//适用8位、16位和32位的系统编译
末日过了大家都还活着,无聊啊

热心网友 时间:2023-11-06 01:41

楼主你好。

代码如下:

#include <stdio.h>

#include <string.h>

#include <math.h>

unsigned int getNum(char* str){//从字符串中提取出unsigned int数据。

unsigned int num=0;

int i, len=strlen(str);

for(i=0;i<len;i++){

if(str[i]>='0'&&str[i]<='9'){

num*=10;

num+=str[i]-'0';

}

}

return num;

}

unsigned int getMaxFactor(unsigned int num){//获取最大因子

unsigned int i;

for(i=2;i<num;i++){//要是追求效率,这里的上限其实可以用num/2甚至sqrt(num)代替,下面也要进行相应修改。

if(num%i==0)break;

}

if(i==num)

return num;

return num/i;

}

void main(){

char str[100]={0};

unsigned int nums[100]={0};//100行,由于题目要求统一输入然后统一输出,因此需要一个缓冲区存储输出,其实这里可以动态分配空间,也可以重定向到文件中,我的unsigned int nums[100]只是一个例子。

int i=0,count;

while(1){

gets(str);

if(strlen(str)==0)break;

nums[i++]=getMaxFactor(getNum(str));

}

count=i;

for(i=0;i<count;i++){

printf("%d\n",nums[i]);

}

}


运行结果:

热心网友 时间:2023-11-06 01:42

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int main(){

char s[120];

gets(s);

while(strlen(s)!=0){

//printf("%s\n",s);

//scanf("%s\n",s);

int sum=0,f=1;

for(int i=0;i<strlen(s);i++){

if(isdigit(s[i]))

sum=sum*10+s[i]-'0';

}

for(int i=sum-1;i>1;i--){

if(sum%i==0){

f=0;

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

break;

}

}

if(f)

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

gets(s);

}

}

emmm,这样也可以,不过个人觉得还是

zhangchaoyiay

的更简单一点。。。

热心网友 时间:2023-11-06 01:41

#include <stdio.h>
long myStr2UInt(char*p) //抽出整数字符并拼成整数返回
{
long ui=0;
if(p&&*p)
{
do
{
char c = *p++;
if(c>='0'&&c<='9')
ui = ui*10+c-'0';
}while(*p);
}
return ui;
}
long getMaxSub(long ui) //返回最大因子,0和素数同返回本身
{
long ret;
if(ui<4)
return ui;
for(ret=ui/2; ret>1; ret--)
if(ui%ret==0)
break;
if(ret==1)
return ui;
return ret;
}
int main(int argc,char**argv)
{
char buf[1024];//只要测试的数据不超出1K,死不掉
do
{
*buf = 0;
gets(buf);
if(*buf==0||*buf=='\n') //空行退出循环
break;
printf("%ld\n",getMaxSub(myStr2UInt(buf)));
}while(1);
return 0;
}
//适用8位、16位和32位的系统编译
末日过了大家都还活着,无聊啊

热心网友 时间:2023-11-06 01:43

#include<stdio.h>
int main()
{
char str[101];

while(scanf("%s",str))
{
int i,n=0;
for(i=0;str[i]!='\0';++i)
{
if(str[i]>='0'&&str[i]<='9')
n=n*10+str[i]-'0';
}
int tag=0;
for(i=n/2;i>=2;--i)
{
if(n%i==0)
{
printf("%d\n",i);
tag=1;
break;
}
}
if(tag==0)
printf("%d\n",n);
}

}

热心网友 时间:2023-11-28 02:39

#include <stdio.h>
long myStr2UInt(char*p) //抽出整数字符并拼成整数返回
{
long ui=0;
if(p&&*p)
{
do
{
char c = *p++;
if(c>='0'&&c<='9')
ui = ui*10+c-'0';
}while(*p);
}
return ui;
}
long getMaxSub(long ui) //返回最大因子,0和素数同返回本身
{
long ret;
if(ui<4)
return ui;
for(ret=ui/2; ret>1; ret--)
if(ui%ret==0)
break;
if(ret==1)
return ui;
return ret;
}
int main(int argc,char**argv)
{
char buf[1024];//只要测试的数据不超出1K,死不掉
do
{
*buf = 0;
gets(buf);
if(*buf==0||*buf=='\n') //空行退出循环
break;
printf("%ld\n",getMaxSub(myStr2UInt(buf)));
}while(1);
return 0;
}
//适用8位、16位和32位的系统编译
末日过了大家都还活着,无聊啊

热心网友 时间:2023-11-28 02:40

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int main(){

char s[120];

gets(s);

while(strlen(s)!=0){

//printf("%s\n",s);

//scanf("%s\n",s);

int sum=0,f=1;

for(int i=0;i<strlen(s);i++){

if(isdigit(s[i]))

sum=sum*10+s[i]-'0';

}

for(int i=sum-1;i>1;i--){

if(sum%i==0){

f=0;

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

break;

}

}

if(f)

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

gets(s);

}

}

emmm,这样也可以,不过个人觉得还是

zhangchaoyiay

的更简单一点。。。

热心网友 时间:2023-11-28 02:40

#include<stdio.h>
int main()
{
char str[101];

while(scanf("%s",str))
{
int i,n=0;
for(i=0;str[i]!='\0';++i)
{
if(str[i]>='0'&&str[i]<='9')
n=n*10+str[i]-'0';
}
int tag=0;
for(i=n/2;i>=2;--i)
{
if(n%i==0)
{
printf("%d\n",i);
tag=1;
break;
}
}
if(tag==0)
printf("%d\n",n);
}

}

热心网友 时间:2023-11-28 02:41

鸟语。。。

热心网友 时间:2023-11-06 01:42

#include <stdio.h>

#include <string.h>

#include <ctype.h>

int main(){

char s[120];

gets(s);

while(strlen(s)!=0){

//printf("%s\n",s);

//scanf("%s\n",s);

int sum=0,f=1;

for(int i=0;i<strlen(s);i++){

if(isdigit(s[i]))

sum=sum*10+s[i]-'0';

}

for(int i=sum-1;i>1;i--){

if(sum%i==0){

f=0;

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

break;

}

}

if(f)

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

gets(s);

}

}

emmm,这样也可以,不过个人觉得还是

zhangchaoyiay

的更简单一点。。。

热心网友 时间:2023-11-06 01:43

鸟语。。。

热心网友 时间:2023-11-06 01:42

#include<stdio.h>
int main()
{
char str[101];

while(scanf("%s",str))
{
int i,n=0;
for(i=0;str[i]!='\0';++i)
{
if(str[i]>='0'&&str[i]<='9')
n=n*10+str[i]-'0';
}
int tag=0;
for(i=n/2;i>=2;--i)
{
if(n%i==0)
{
printf("%d\n",i);
tag=1;
break;
}
}
if(tag==0)
printf("%d\n",n);
}

}

热心网友 时间:2023-11-06 01:43

鸟语。。。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 华为P8无法开机并且充电指示灯也不亮怎么办 质量管理七大工具 把数组中的数拼接起来,求最大值 华为p8按电源键无法开机也不能充电怎么办 玻璃自爆原因鱼骨图 华为p8不能开机了,怎么破? Python实现,输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接 c语言数字拼接成字符串 华为p8青春版手机不能开机怎么办 华为P8手机不能开机,是电池的坏了吗? 一头牛背上坐着一个人戴着帽子,帽子是个里字,请问其它七个是什么字? 鱼骨图的注意事项 大话3一转敏女妖应该穿怎么样的装备 C++中如何把数字和字符串拼接起来? Excel中怎么把文本与数字拼接? 帽子和衣服要如何搭配,才能起到和谐统一的效果? 按风水迷信属牛的人能带帽子吗 JAVA如何拼接数字 天天酷跑姐始祖耗牛配帽子先生 汽车配件质量问题优先减少计划鱼骨图分析法模板 华为p8max手机无法开机怎么办 PHP中字符串与数字拼接起来,用什么方法? 大话西游3 平民全敏男妖如何打造。。(是平民最多一个2阶仙器)装备详细解说。 华为p8无法开机重复开机界面 腾龙在线客服电话是13114162570吗? 如何拼接字符串和数字 大话西游3女妖强牛到85%以上怎么配? 腾龙娱乐客服tenlongkefu是吗? int类型数字拼接,如 string a=&quot;04&quot; ;int b =int .Parse(a); 结果b=4;前面的0丢失,我需要怎么拼接 大话西游3强牛装备怎么搭配? 华为p8青春版开不了机了,怎么办? SQL怎么拼接数字 谁知道大力女魔的装备怎么搭配比较NB 学P图该怎么入手简单告诉我? 大话3敏妖强牛装110的护身符和腰带怎么配强牛属性的? 华为p8青春版开不开机了怎么办 大话西游3强牛女妖装备怎么配? 小学生学打篮球,是要定好打什么位置还是说综合训练好 华为P8不能开机怎么办 大话西游3女妖最高强牛能强多少,知道的说一下,装备要怎么配来具体的