c语言题目,韩信点兵

代码如下,盼有所帮助:

#include<stdio.h>

intmain()
{
intiStart=0,iEnd=0,iCount=0,index=0;
printf("请输入两个整数(用逗号隔开):");
scanf("%d,%d",&iStart,&iEnd);
index=iStart<=iEnd?iStart:iEnd;
iEnd=iStart>=iEnd?iStart:iEnd;

for(;index<=iEnd;++index)
{
if((2==index%3)&&(3==index%5)&&(2==index%7))
{
printf("%d",index);
++iCount;
if(0==iCount%10)printf(" ");
}
}
printf(" 共找到%d个符合专条件的属数。 ",iCount);
return0;
}

② 韩信点兵(c语言)

你完全没有按照题目要求做。版

#include<stdio.h>
voidmain(){
longlongi,A,B,C,D,E,F,G,H,a,b,c,d,e,f,g,h;
scanf("%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld%lld",&A,&B,&C,&D,&E,&F,&G,&H,&a,&b,&c,&d,&e,&f,&g,&h);
for(i=A;;i++)
if(i%A==a&&i%B==b&&i%C==c&&i%D==d&&i%E==e&&i%F==f&&i%G==g&&i%H==h)
{printf("%lld",i);break;}
}

运行示例权:

③ c语言编程序:韩信点兵,韩信有一队伍,你想知道有多少人,就让士兵报数,按从1至5报数,最末一个士兵报的

韩信点兵不是按3人一排,5人一排,7人一排吗?如果是这样的话
# include<stdio.h>

int main()
{
int n,a,b,c;
scanf("%d%d%d",&a,&b,&c);
for(n=10;n<=200;n++)
{
if (n%3==a && n%5==b && n%7==c)
{
if(n<=100)
{
printf("%d",n);
break;
}
else
{
printf("No answer");
}
}
}
}

④ 韩信点兵,C语言

#include<stdio.h>
intmain()
{
inti;
for(i=6;i<=100000;i++){
if(i%5==1&&i%6==5&&i%7==4&&i%11==10){
printf("总数为:%d",i);
break;
}
}
return0;
}

⑤ C语言编程:韩信点兵问题拜托各位了 3Q

#include<stdio.h> main() { int i=100; while(i<=200) { if((i%3==1)&&(i%5==2)&&(i%7==4)) printf("%d ",i); i++; } printf("\n"); }

⑥ c语言韩信点兵

在你的程序段中,break的意思是跳出for循环,也就是说,

第一次进入循环时,x=10,此时不满足if的条件,不执行if大括号里的语句,执行else大括号里的语句,即输出No answer,换行,然后break,跳出for循环,程序结束。

然而如果把把两个break注释掉,else中的语句仍然,放在for循环内部,会得到很多No answer,再输出一个41,然后又是很多No answer。(你可以验证一下)

这是因为每次进入for循环,无论是执行if中的语句还是else中的语句,它都必然会执行输出,前面不满足条件的x都进入了else,接着输出No answer。

所以,原来程序段中的else中的语句不应该放在for循环内部。

换句话说,你的改进应该是(1)删掉两个break,(2)将else中的语句(即输出No answer)放到for循环以外
改进结果如下:
#include
int main()
{
int a,b,c,x;
scanf("%d%d%d",&a,&b,&c);
for(x=10;x<=100;x++)
{
if((x%3==a)*(x%5==b)*(x%7==c))
{
printf("%d\n",x);
break;
}
}
if(x==101)
{
printf("no answer");
}
return 0;
}
因为我没设置hanxin.out这个文件,所以把freopen("hanxin.out","w",stdout);这行删除了,你需要的话可以自己加上。

为了将 printf("no answer");这一句放到for循环以外,增加了两句
break;

if(x==101)

这两句的作用是当x满足for中if的条件时,跳出for循环,此时x的值为跳出时的值,如果所有的x都不满足for中if的条件,则此时for执行完毕,没有x满足条件,此时x的值为101,就输出no answer。

还有问题尽管问哈~

⑦ c语言韩信点兵中&&与||

|是||是"逻辑或",表示多个条件有一个满足,即为条件满足。
用&&("逻辑与",表示版必须各个条件全部满足,权才算条件满足)实现的程序也可以,不过要这样写:
#include <stdio.h>
int main(void)
{
int x;
x=10;
while(!(x%5==1&&x%6==5&&x%7==4&&x%11==10))// !XXXX 表示“不是XXXX"
x++;
printf("韩信总共有%d个兵\n",x);
getch();
return 0;
}

⑧ C语言 韩信点兵

for(i=5;;i+=5)
{if((i+1)%6==5&&(i+1)%7==4&&(i+1)%11==10)
{printf("韩信有%d个兵",i+1));break;}
}

⑨ 请问韩信点兵用c语言怎么编写啊

用枚举法即可,在最大带兵范围内循环计算,直至找到合适的数。

题主的具体题目是专什么?我这里先按属最核心的内容编写代码吧。

题目:韩信带兵1500人,战死大约400-500,剩余兵力,3人一排多2人,5人一排多4人,7人一排多6人,求韩信剩余多少兵力。

#include<stdio.h>

intmain(void){
intn;
for(n=1000;n<1100;n++)/*战死大约400-500,循环范围即在1000-1100之间*/
if((n%3==2)&&(n%5==4)&&(n%7==6))/*循环找寻某数符合除3余2且除5余4且除7余6*/
printf("韩信剩余兵力为%d人!",n);
getch();
return0;
}

运行结果