莲太郎随心所欲:[c语言]有1到100个数,现在从中提取7、和个位或十位上有7的数、以及7的倍数,然后输出。

来源:百度文库 编辑:神马品牌网 时间:2024/05/01 22:41:41

for(i=1;i<=100;i++)
{
if ((i%7==0) or ((i-i%10)/10==7) or (i%10==7))
{
printf("%d",i);
}
}
这是我写的程序
i%7==0 是表示被7整除
((i-i%10)/10==7)是指十位为7,i%7后是个位数,i-个位是十的倍数,也再除10就可以得出十位上的数字是多少
(i%10==7)是指个位为7
用or的意思是说如果这个数i符合这三条中任意一条就要把这个数输出
楼上的兄弟错误了,(i/10==7)是得整型数据对吧?你有没有想过如果是76这个数字或者78,79那么i/10就会得8,显然不是你想要的
那么根据你的这个程序判断,那78,79等数据就不会显示出来呵呵而现实恰好相反
还有你的(i%1==0)真是笑话,那每个整数%1肯定为0了
这是低级错误

循环
取出数i
i转换成字符串s
如果i能被7整除或s中含有"7",输出。
结束

#include "stdio.h"

main()
{
int i;

for(i=1;i<=100;i++)
{
if(i%10==7)
{
printf("%-4d",i);
}

else if((i%100)/10==7)
{
printf("%-4d",i);
}

else if(i%7==0)
{
printf("%-4d",i);
}
}
getch();
}

在WIN-TC中编译通过。

#include"stdio.h"
main(){
int i;
for(i=1;i<=100;i++)
{if(i%10==7) printf("%d ",i);
else if(i/10==7) printf("%d ",i);
else if(i%1==0) printf("%d ",i);
}
getch();
}

#include "stdio.h"
main()
{int c[100];
int i, j;
for(i=1;i<=100;i++)
c[i]=i;
if(j%7==0)
printf("dfdf%d",c[i]);
else
if (j/10==7)
printf("dfsdf%d",c[i]);
getch();
}