面对这道题,咱们可以一步一步慢慢来,首先,这道题是简单题,它要求从1-100中挑选数字,那我们,肯定先要在屏幕上打印出1-100。
首先,咱们定义一个数组,同时定义一个整型变量i,利用for循环把1-100赋值给数组,然后打印出来,同时加入判断语句,如果整数i取余=0(也就是i等于10,20,30,40,.....,90)的时候,输出换行符,那么这样打印出来的1-100比较简洁美观
#include<stdio.h>
int main()
{
int a[100]={};
int i;
for(i=1;i<=100;i++)
{
a[i]=i;
printf("%d ",a[i]);
if(i%10==0)
{
printf("\n");
}
}
return 0;
}
接下来我们开始挑数,首先个位数相同,那我们的思路就是1-100中,每个数字对10取余,如果取余数相同,那么个位数相同,我们把这些数存到另外一个数组中并打印出来就OK啦,这里我们以个位数3相同为例。
#include<stdio.h>
int main()
{
int a[100]={};
int i;
int b[10]={};
for(i=1;i<=100;i++)
{
a[i]=i;
printf("%d ",a[i]);
if(i%10==0)
{
printf("\n");
}
}
printf("\n");
for(i=1;i<=100;i++)
{
if(a[i]%10==3)
{
b[i]=a[i];
printf("%d ",b[i]);
}
}
return 0;
}
其实十位数相同也是一样的,思路就是对1-100的每个数➗10得到的整数相同的就是十位相同的数,那么我们只需要把上面那段代码的%改成/就可以了,我们以4为例
#include<stdio.h>
int main()
{
int a[100]={};
int i;
int b[10]={};
for(i=1;i<=100;i++)
{
a[i]=i;
printf("%d ",a[i]);
if(i%10==0)
{
printf("\n");
}
}
printf("\n");
for(i=1;i<=100;i++)
{
if(a[i]/10==4)
{
b[i]=a[i];
printf("%d ",b[i]);
}
}
return 0;
}
OK,我们知道了上面的代码之后可以修改一下最终的比较人性化一点的代码了。输入你想的数字后自动帮你判断和输出,比较符合面向对象。但是输出结果会有点错误(最后一行),具体原因我也不太清楚,学的比较浅,希望各位大佬指点一下我。
#include<stdio.h>
int main()
{
int a[100]={};
int b[10]={};
int c[10]={};
int a1=0;
int b2=0;
int i;
printf("请输入需要个位和十位相同的数字,按空格子隔开:");
scanf("%d %d",&a1,&b2);
for(i=1;i<=100;i++)
{
a[i]=i;
printf("%d ",a[i]);
if(i%10==0)
{
printf("\n");
}
}
printf("\n");
for(i=1;i<=100;i++)
{
if(a[i]/10==b2)
{
c[i]=a[i];
printf("%d ",c[i]);
}
}
printf("\n");
for(i=1;i<=100;i++)
{
if(a[i]%10==a1)
{
b[i]=a[i];
printf("%d ",b[i]);
}
}
return 0;