c语言查找数字
Ⅰ 50分送上 c语言 在字符串中找到连续的数字 比如123
#include<stdio.h>
#include<conio.h>
#include<string.h>
int main()
{
void number(char *,int); //函数声明 @@@
char ch[80];
int m;
gets(ch);
m=strlen(ch); //字符串长度
number(ch,m); //调用函数
getch();
return 0;
}
void number(char *p,int n)//@@@
{
int i,a[20],k,size;
for(i=0,k=0;i<n;i++)
{
if(*(p+i)<='9'&&*(p+i)>'0') //判断是否为数字 @@@
{
a[k]=*(p+i)-48;
if(*(p+i)-*(p+i+1)==1) //判断下一个字符是否是此数字-1; @@@
{
while(*(p+i)-*(p+i+1)==1)
{
a[k]=a[k]*10; //把数字赋值给a数组
a[k]=a[k]+*(p+i+1)-48;//@@@
i++;
}
k++;
}
else if(*(p+i)-*(p+i+1)==-1) //判断下一个字符是否是此数字+1; @@@
{
while(*(p+i)-*(p+i+1)==-1)
{
a[k]=a[k]*10;
a[k]=a[k]+*(p+i+1)-48;//@@@
i++;
}
k++;
}
}
}
for(i=0;i<k;i++)//@@@
printf("%d\n",a[i]);
}
Ⅱ C语言,查找数组里重复出现的数字;
检查一个数中每位的数字是否重复,
n%10来得到当前最小位的值,
每次迭代都n/=10 ,使得数字都向右移动一位
n>0来检测是否已经检测完了。
比如123这个数;
n%10
==
3,说明3已经出现,所以digit_seen[3]
==
true了,如果检测到digit_seen[3]
==
true,说明已经有3这个数字了,就重复了,所以就直接跳出循环,此时n!=0,再通过检测n就可以判断了。
n/=10来将数字向右移动一位,这个时候n
==
12
继续前两步,直到n=0(因为任何小于等于9的整形数除以10都是0)
Ⅲ c语言编程如何寻找输入数字中没有出现的数字
可以这样。
#include
int main(void)
{
char ch;
while(1)
{
ch=getchar();
if(ch>'0' && ch <'9')
{
getchar();
printf("next\n");
}
else
break;
}
return 0;如果你要求输入一个字符串,然后判断是不是数字字符组成的字符串的话
#include
#include
int main(void)
{
char str[1024];
int idx=0;
int isnumber=1;
memset(str,0,sizeof(str));
while(isnumber)
{
fgets(str,1024,stdin);
for(idx=0;str[idx]!='\0';idx++)
{
if(!(str[idx]>'0' && str[idx]<'9' || str[idx]=='\n'))
{
isnumber=0;
break;
}
}
if(isnumber!=0)
printf("next\n");
}
}
Ⅳ 在一个数组中查找一个数,用C语言怎么写代码
#include<卜激stdio.h>
intmain(void)
{
inti,j,k=0,sz[10]={5,75,89,428,576,5986,7543,8524,9805,1057};
printf("请输入要唯让查找指弊局的数:");
scanf("%d",&j);
for(i=0;i<10;i++)
if(sz[i]==j)
{
printf("sz[%d]=%d ",i,sz[i]);
k++;
}
if(!k)
printf("数组中没有您要查找的数。 ");
return0;
}