#include<stdio.h>
#include<string.h>
int pow1(int a,int b)
{
int i,k;
k=a;
for (i=1;i<b;i++)
a=a*k;
return (a);
}
void main()
{
int i=0,j,len,l=0,num=0,*p;
int b[100],c[100],d[100];
char *str,a[100];
b[0]=0,c[0]=0;
p=c;
gets(a);
str=a;
len=strlen(a);
for (i=0;i<len;i++,str++)
{
if (*str<48||*str>57)
{
if (*(str-1)>47&&*(str-1)<58&&i!=0)
{ num++;
b[num]=l;
continue;}
else continue;
}
else
*p++=(int)*str-48,l++;
}
if (a[len-1]>47&&a[len-1]<58)
num++;
b[num]=l; printf("数组共有以下%d个整数:\n",num);
for (i=0;i<num;i++)
{
for (j=0;j<b[i+1]-b[i];j++)
d[i]+=c[b[i]+j]*pow1(10,b[i+1]-b[i]-j-1);
}
for (i=0;i<num;i++)
printf("%d ",d[i]);
}
目的是输入一个字符串,将其中连续的数字变成一个整数然后存入一个数组,并统计整数个数如"fgdv123fg567",则将123,567变成整型数存入数组。
不知道程序的问题,请帮助
#include<stdio.h> #include<string.h> int pow1(int
答案:2 悬赏:0
解决时间 2021-02-04 04:21
- 提问者网友:温柔又任性
- 2021-02-03 09:27
最佳答案
- 二级知识专家网友:兮沫♡晨曦
- 2021-02-03 10:33
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define N 200
int number[N];
int toInt(char* ch,int j)
{
int sum=0;
int k=j-1;
for(int i=0;i<j;i++)
{
int q=pow(10,k--);
sum+=(ch[i]-48)*q;
}
return sum;
}
int main()
{
char c;
int count=0;
c=getchar();
while(c!='\n')
{
int i=0;
char ch[20]; //整数不超过20位
while((c<'0'||c>'9')&&c!='\n') c=getchar();
while(c>='0'&&c<='9'&&c!='\n')
{
ch[i++]=c;
c=getchar();
}
if(c=='\n'&&ch[0]=='\0') break;
number[count++]=atoi(ch); //number[count++]=toInt(ch,i); atoi是把字符串转换成整数
memset(ch,0,sizeof(ch));
}
printf("整数的个数是:%d\n",count) ;
for(int i=0;i<count;i++)
printf("%d ",number[i]);
return 0;
}
#include<math.h>
#include<stdlib.h>
#include<string.h>
#define N 200
int number[N];
int toInt(char* ch,int j)
{
int sum=0;
int k=j-1;
for(int i=0;i<j;i++)
{
int q=pow(10,k--);
sum+=(ch[i]-48)*q;
}
return sum;
}
int main()
{
char c;
int count=0;
c=getchar();
while(c!='\n')
{
int i=0;
char ch[20]; //整数不超过20位
while((c<'0'||c>'9')&&c!='\n') c=getchar();
while(c>='0'&&c<='9'&&c!='\n')
{
ch[i++]=c;
c=getchar();
}
if(c=='\n'&&ch[0]=='\0') break;
number[count++]=atoi(ch); //number[count++]=toInt(ch,i); atoi是把字符串转换成整数
memset(ch,0,sizeof(ch));
}
printf("整数的个数是:%d\n",count) ;
for(int i=0;i<count;i++)
printf("%d ",number[i]);
return 0;
}
全部回答
- 1楼网友:努力只為明天
- 2021-02-03 10:45
Pow1函数你是想求a的b次方么?
再看看别人怎么说的。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯
• 手机登qq时,显示手机磁盘不足,清理后重新登 |
• 刺客的套装怎么选啊? |