當前位置:首頁 » 編程軟體 » 編程鳴禮炮

編程鳴禮炮

發布時間: 2022-06-23 21:20:43

A. 一道大學c語言簡單編程求改錯(只剩一個未知錯誤了)

#include <stdio.h>
int main()
{
int n=0, t;
for (t=0; t<=20*7; t++)
{
if(t%5==0 && t<=20*5)
{
n++;
continue;
}
if(t%6==0 && t<=20*6)
{
n++;
continue;
}
if(t%7==0)
{
n++;
}
if(t % 5 == 0 && t % 6 == 0 && t % 7 ==0
|| t % 5 == 0 && t % 6 == 0
||t % 6 == 0 && t % 7 ==0
||t % 5 == 0 && t % 7 ==0 ) // 這里要排除同時響的
{
n--;
}
}
printf("n=%d\n", n);
return 0;
}

B. c語言,海軍節上的鳴炮聲計算問題,答案錯了一部分(百分之六十),求在我的程序上改錯,謝了!!!

/*關於容斥原理的題*/
#include<stdio.h>
intgcd(inta,intb){
if(a<b){
inttemp=a;
a=b;
b=temp;
}
intc=a%b;
while(c){
a=b;
b=c;
c=a%b;
}
returnb;
}
intmain(){
inta,b,c,n,ans;
scanf("%d%d%d%d",&n,&a,&b,&c);
ans=n/a+n/b+n/c;
ans-=n/(a*b/gcd(a,b))+n/(b*c/gcd(b,c))+n/(a*c/gcd(a,c));
ans+=n/(a*b*c/(gcd(gcd(a,b),c)));
printf("%d ",ans);
return0;
}

C. 用C語言計算聽到的禮炮聲 哎呦喂 這哪是編程啊 這比數學還難。。求指教

#include"stdio.h"
intmain()
{
intn,a,b,c;
intta,tb,tc,na,va,vb,vc;
scanf("%d%d%d%d",&n,&a,&b,&c);
ta=n*a; //a鳴n次用的總時間
tb=n*b; //b鳴n次用的總時間
tc=n*c; //c鳴n次用的總時間
na=n*3; //沒有重復時,觀眾會聽到的次數
va=a;
vb=b;
vc=c;
//是否會一起鳴炮
if(a==b==c)
{
printf("%d ",n);
return0;
na=na-2;
}
elseif(a==b||a==c||b==c)
na--;
//這個循環模擬,鳴炮的過程,若有abc一起鳴,則na減2,若有兩個一起鳴,則na減1
while(1)
{
if(a<ta&&b<tb&&c<tc)
{

if(a<=b&&a<=c)
{
a+=va;
if(a==b==c)
na--;
elseif(a==b||a==c)
na--;
}
elseif(b<=a&&b<=c)
{
b+=vb;
if(a==b==c)
na--;
elseif(b==a||b==c)
na--;

}
elseif(c<=a&&c<=b)
{
c+=vc;
if(a==b==c)
na--;
elseif(c==a||c==b)
na--;
}
}
elseif(a<ta&&b<tb)
{
if(a<=b)
{
a+=va;
if(a==b)
na--;
}else{
b+=vb;
if(a==b)
na--;
}
}
elseif(a<ta&&c<tc)
{
if(a<=c)
{
a+=va;
if(a==c)
na--;
}else{
c+=vc;
if(a==c)
na--;
}
}
elseif(b<tb&&c<tc)
{
if(c<=b)
{
c+=vc;
if(c==b)
na--;
}else{
b+=vb;
if(c==b)
na--;
}
}
else
break;

}
printf("%d ",na);
return0;
}

D. 要求用C語言編程解決下面問題:在慶祝活動中,A,B,C三條軍艦要同時開始鳴放禮炮各21響

和你說下思路吧。
---------------------------------------------
因為C艦要7秒放一次,所以最後一響一定是C艦的。即最後一響是在第140秒。
所以開一個大小超過140的數組並將所有內容初始化為0,然後分別隔5、6、7編號對數組的對應內容進行+1操作。
三次遍歷之後,第四次遍歷統計不為0的元素個數,然後輸出就OK

E. c語言 海軍鳴炮

利用最小公倍數能夠求出重疊的炮聲,然後用總的炮聲減去即可。

具體代碼如下:

#include<stdio.h>
#include<stdlib.h>
#include<math.h>

intLcm(inta,intb);

main()
{
intst;//重疊的炮聲

st=5*21/Lcm(5,6)+6*21/Lcm(6,7)+5*21/Lcm(5,7);//利用最小公倍數求重疊的炮聲
printf("n=%d",21*3-st);

system("pause");
}

//函數功能:輸出兩個數的最小公倍數
intLcm(inta,intb)
{
inti;
for(i=a;i<=a*b;i++)
{
if(i%a==0&&i%b==0)
break;
}
returni;
}

F. 要求用C語言編程解決下面問題:

貧道花了半小時親自寫的啊,親,雖然演算法不是最優,但簡單……

/************************************************************

// CJ_Studio
// 2013/1/6

**************************************************************/
#include <stdio.h>

#define N 21

int main()
{
int A[N],B[N],C[N],S[3*N],i,j,sn=N,snb;
for(i=0;i<N;i++)
{
S[i]=A[i]=5*i;
B[i]=6*i;
C[i]=7*i;
}
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
if(B[i]==S[j])break;
}
if(j==N){S[j]=B[i];sn++;}
}
snb=sn;
for(i=0;i<N;i++)
{
for(j=0;j<snb;j++)
{
if(C[i]==S[j])break;
}
if(j==snb){S[j]=C[i];sn++;}
}
printf("%d\n",sn);
return 0;
}

G. 急!C語言編程題!

#include<stdio.h>
void main()
{
int time=1,count=0;
for(;time<141;time++)
if((time%5==0&&time%6==0)||(time%7==0&&time%5==0)||(time%7==0&&time%6==0))
//原來的答案是按照105秒來計算的,錯誤!
count++;
count+=2; //一開始應該是time=0減去兩個,所以應該cout加上2
printf("所應該減去的次數%d\n",count);
count=63-count;
printf("可以聽到的次數=%d",count);
//結果為五十,已經通過數學方法驗證,不是五十四次!
}

H. c言語編程問題.(設計題目)

1.
#include <stdio.h>

int issquare(int n){
int i=0;
while(i*i<=n){
if(i*i==n) return 1;
else i++;
}
if(i*i>n) return 0;
}

int main(){
int a,b,c,d;
for(a=0;a<10;a++)
for(b=0;b<10;b++)
for(c=0;c<10;c++)
for(d=0;d<10;d++){
if(a==b&&c==d&&a!=c&&issquare(a*1000+b*100+c*10+d)) printf("%d%d%d%d\n",a,b,c,d);
}
return 0;
}

2.
#include <stdio.h>

void test(int n,int result[]){
int i,j,k,l;
for(i=0;i*i<=n;i++)
if(i*i==n){
result[0]=i;
return;
}
for(i=0;i*i<=n;i++)
for(j=0;j*j<=n;j++)
if(i*i+j*j==n){
result[0]=i;
result[1]=j;
return;
}
for(i=0;i*i<=n;i++)
for(j=0;j*j<=n;j++)
for(k=0;k*k<=n;k++)
if(i*i+j*j+k*k==n){
result[0]=i;
result[1]=j;
result[2]=k;
return;
}
for(i=0;i*i<=n;i++)
for(j=0;j*j<=n;j++)
for(k=0;k*k<=n;k++)
for(l=0;l*l<=n;l++){
if(i*i+j*j+k*k+l*l==n){
result[0]=i;
result[1]=j;
result[2]=k;
result[3]=l;
return;
}
}
}

int main(){
int n;
scanf("%d",&n);
int a[4]={-1,-1,-1,-1};
test(n,a);
int i;
for(i=0;i<4;i++)
if(a[i]!=-1) printf("%5d",a[i]);
printf("\n");
return 0;
}

3.
#include <stdio.h>

int isprime(int n){
int i;
for(i=2;i<n;i++)
if(n%i==0)return 0;
return 1;
}

int main(){
int n;
printf("Enter a positive even number between 0 and 2000: ");
scanf("%d",&n);
if(n<0||n>2000) printf("Illegal number\n");
else{
int i=3;
while(i<n){
if(isprime(i)&&isprime(n-i)) printf("%d=%d+%d\n",n,i,n-1);
else i++;
}
return 0;
}

4.
#include <stdio.h>

int main(){
int a=0,b=0,c=0,count=0;
while(a<=5*20||b<=6*20||c<=7*20){
if(a%5==0||b%6==0||c%7==0) count++;
if(a<=5*20)a++;
if(b<=6*20)b++;
if(c<=7*20)c++;
}
printf("%d\n",count);
return 0;
}

5.
#include <stdio.h>
#include <stdlib.h>

struct student{
float score;
struct student *next;
};

int main(){
struct student *s;
s=(struct student *)malloc(sizeof(struct student));;
struct student *t;
t=s;
float i,sum;
int total;
int a=0,b=0,c=0,d=0,e=0;
do{
scanf("%f",&i);
if(i<0) {
s->score=i;
s->next=0;
break;
}
else{
if(i<60) e++;
else if(i>=60&&i<70) d++;
else if(i>=70&&i<80) c++;
else if(i>=80&&i<90) b++;
else if(i>=90) a++;
total++;
sum=sum+i;
s->score=i;
s->next=(struct student *)malloc(sizeof(struct student));
s=s->next;
}
}while(1);
float ave=sum/total;
s=t;
int j=0;
while(s!=0){
if(s->score>ave) j++;
t=s;
s=s->next;
free(t);
}
printf("Number of failed students: %d\n",e);
printf("Number of students above average: %d\n",j);
printf("Percentage below 60: %f\%\n",e/total*100);
printf("Percentage for 60~70: %f\%\n",d/total*100);
printf("Percentage for 70~80: %f\%\n",c/total*100);
printf("Percentage for 80~90: %f\%\n",b/total*100);
printf("Percentage for above 90: %f\%\n",a/total*100);
return 0;
}

最後一個太無聊了,你自己查查對應的公式寫就可以了。
}

I. C語言問題,,急!!!

VC6.0編譯通過,思路是算出共有多少秒有炮響,統計出總數。再加上開始同同時鳴響的一炮。總炮數為54響。

void main()
{
int max=20*7;//算出時間段的長度
int cnt=1;//開始時三條船同時鳴的那一響

for(int i=4;i<=max;i++)
{
if(0==i%5&&i<=20*5) cnt++; //此處要注意,當間隔為5秒放完以後,cnt在此處就不能再增值了。
else if(0==i%6&&i<=20*6) cnt++; //此處要注意,當間隔為6秒放完以後,cnt在此處就不能再增值了。
else if(0==i%7) cnt++;
} //從第四秒開始,某一秒有炮響就讓cnt加1

printf("禮炮數為:%d\n",cnt); //從而得出總的炮響數。
}

J. VB練習題禮炮問題

dimaasinteger,basinteger,casinteger
dimiasinteger,nasinteger

a=0:b=0:c=0:n=0
Fori=1to21
Ifa<>bAndb<>cAndc<>aThen
n=n+3
ELseIfa=bAndb=cAndc=aThen
n=n+1
Else
n=n+2
EndIf
a=a+5:b=b+6:c=c+7
Nexti

print"觀眾總共聽到的禮炮聲數:"&n

熱點內容
u盤里文件夾是空的 發布:2025-02-14 06:13:22 瀏覽:803
安卓如何縮放圖片尺寸 發布:2025-02-14 06:06:34 瀏覽:116
六年級簡便演算法題 發布:2025-02-14 05:53:02 瀏覽:8
腳本精靈要root嗎 發布:2025-02-14 05:51:30 瀏覽:212
安卓手機如何錄屏怎麼去掉觸摸顯示 發布:2025-02-14 05:36:23 瀏覽:996
安卓系統新品推薦怎麼關 發布:2025-02-14 05:35:44 瀏覽:888
虛擬存儲器的基礎是 發布:2025-02-14 05:32:24 瀏覽:516
androidstudio出錯 發布:2025-02-14 05:32:14 瀏覽:305
面容id存儲多張臉 發布:2025-02-14 05:31:30 瀏覽:656
網站源碼百度雲 發布:2025-02-14 05:30:53 瀏覽:214