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;
}

運行結果