我遇到了一些麻烦......我正在尝试输入一个数字,然后是一个多个数字的整数。我试图计算整数中第一个数字出现的次数。 现在,我制作了这个非常简单的代码,向您展示我实际上要做的事情。问题是,这段代码只比较了两个整数,并告诉我它们是否相同。请注意,我对C编程非常缺乏经验,因此这个问题......
int main(){
int numberOne;
int numberTwo;
int count = 0;
scanf("%d", &numberOne);
scanf("%d", &numberTwo);
if(numberOne == numberTwo){
count++;
}
printf("Amount of equals found: %d", count);
return 0;
}
现在,如果我有以下输入:'1 1021023234',则输出为:'找到的等于的数量:0' 输出应该是(在这种情况下)'输出将是找到的等于的数量:2'
我希望你们能给我一些提示。
答案 0 :(得分:0)
自己编写代码。以下是提示:
由于您只需要一个输入,请从程序中删除numbertwo
并执行以下操作:
numberone%10
会给出用户输入的第一位数字。将其分配给变量one
。
如果用户输入(numberone
)< 10,请打印first digit is found 1 time in input
并退出该计划。
使用while
循环并将numberone>=10
置于其condition.check if(numberone%10==one)
中,如果为true,则为增量变量count
。加
numberone/10
之后。
打印上一个printf
并结束程序
答案 1 :(得分:0)
你可以将它们读作整数,但你无法按照你的方式进行比较。为了比较它们,你需要从数字中提取每个数字并进行比较。
temp = numbertwo % 10; //this gives the digit in the unit place
if(temp == numberone)
count++;
numbertwo = numbertwo / 10; //this now removes the last digit that has already been compared
将上述代码保持在循环中,直到numbertwo变为零。它会按你的意愿工作
另一种方法是将整数读作字符串。
char* numbertwo;
char = malloc(20);
fgets(numbertwo, 20, stdin);
然后比较for循环中的整数
答案 2 :(得分:0)
如果我理解正确,那么你需要以下
#include <stdio.h>
int main(void)
{
unsigned int numberOne;
unsigned int numberTwo;
unsigned int x;
unsigned int base;
size_t n;
printf( "Enter first number: " );
scanf( "%u", &numberOne );
printf( "Enter second number: " );
scanf( "%u", &numberTwo );
x = numberOne;
base = 1;
do { base *= 10; } while ( x /= 10 );
n = 0;
do { n += numberOne == numberTwo % base; } while ( numberTwo /= 10 );
printf( "Amount of equals found: %u", n );
return 0;
}
对于数字12
和76512612
,输出为
Amount of equals found: 2
答案 3 :(得分:0)
您可以使用以下字符串进行尝试..
#include<stdio.h>
#include<string.h>
main()
{
char int1[100];
char int2[100];
int cnt=0;
scanf("%s",int1);
scanf("%s",int2);
char *p;
while(p=strstr(s1,s2)) //searches for the string s2 in s1 and if found, returns the address to the pointer p//
{
cnt++
s1=p+strlen(s2); //now s1 points to the next location from the end of string s2 in s1//
}
printf("Amout of equals found:%d\n",cnt");
}