❶ 一道編程題不知道哪裡錯了 語言C++ 求教
全部改好了,蔽敬你的演算法有錯的。
#include<iostream>
usingnamespacestd;
intmain()
{
intn,m1,m2,i,j,sum,k,temp;
cout<<"inputthearraynumber ";
cin>>n;//inputthearraynumber
while(n>0)//themaxlongdatais100
飢簡{
cout<<"inputthetwoarraylong ";
cin>>m1>>m2;
宏肢慎inta[100],b[100];
intc[100];
sum=0;
cout<<"input"<<m1<<"data ";
for(i=0;i<=m1-1;i++)
cin>>a[i];
cout<<"input"<<m2<<"data ";
for(i=0;i<=m2-1;i++)
cin>>b[i];
for(i=0;i<=m1-1;i++)
{
for(j=0;j<=m2-1;j++)
if(a[i]==b[j])//findthesamedata
{c[sum++]=a[i];break;}//iffindthesamedata,thenstopthefind
}
for(j=0;j<sum;j++)
{
for(i=j;i<sum;i++)
if(c[j]>=c[i]){
temp=c[j];
c[j]=c[i];
c[i]=temp;//sortthecdata
}
}
i=0;
while(i<sum)
{
if(c[i]!=c[i+1])
cout<<c[i++]<<' ';
elsei++;
//coutthenotsamedataofc[]
}
cout<<endl;
n--;
}
system("pause");
return0;
}
運行結果
❷ 求大佬幫看看,這道編程題哪裡有錯誤
原因是min函數聲寬信明中類模板缺少模板形參,且模板形參不能為空,所以出錯.
在主函數中用類模板定義對敬悉象時,必須為模板形參顯式的指定類型實參,程序中沒有指定,而出錯.
改正後的C++程序如下(見圖,改動的地方見慎稿輪注釋)
❸ 編程C++答案為什麼錯的啊,我哪裡編錯了
1/fact(i)這個修改成:1.0/fact(i),你注意,/如果兩邊是整數的時候,取商的整數部分,所以你必須將被除數寫成小數的形式
❹ C語言【PTA】7-16編程題錯在哪裡了
#include<stdio.h>
int碧正main()
{
inta=0,b=0,c=0,d=0;
scanf("%d%d",&友圓a,&b);
c=a/100;
d=a%100+b;
if(0<d) //這里錯了
{
while(59<d)
{
c++;
d=d-60;
}
}
else
{
while(0>d)
{
c--;
d=d+60;
}
}
printf("%d%02d "好慧塌,c,d); //這里也改了
return0;
}
❺ 計算機C語言編程基礎問題,問哪裡錯了
計算機c語言在編程的過程中它會出現問題,一般來說都是在它的程序語句出現錯誤了,所以你可以再重新檢查一遍。
❻ c語言一道編程題,求大神給看哪錯了
一定是錯誤:你在排序之後,並沒有把數組還原,導致第一組數據正確後,第二組數據面臨的不是原來的數組。樣例中,當第一組數據排序結束後,數組由「12345」變為了「54321」,等你第二組數據要計算的時候,原本你應該計算「23」,結果你計算了「43」,自然有侍團問題。
不確定是否錯誤,但是ACM的題目中出現多組數據的時候,通常都是輸舉氏入一組數據,輸出一組數據。如果把所有的輸入都正談散存起來,等輸入完畢後一起輸出,會導致格式出錯。
也不確定是否錯誤,你在用冒泡排序對數組進行操作。在ACM題目中,通常情況下冒泡排序都是超時的排序方式。以這道題目而言,排序是可以優化的,比如,我只排前k個數據,找出第k大的數之後直接輸出。又或者用其他的優化排序法(同樣考慮只排序到第k個)
❼ C語言編程題。我到底錯在哪裡啊
void main()
{int i;
for (i=1;s<m;i++)s=s+i;
n=i-1; %i僅超過1次
s=s-i; %s應該是減去最後一次i
}
另:盡然s是外部整數,應該已經賦值過0了,這里沒有必要進行。如果沒有賦值這里必須要先賦值成0.或者s是一個靜態變數,在定義的時候已經默認為0.
❽ 編程題,不知道哪裡出了錯,求大神解答
if語句沒括弧,導致if語句後面實際只有一句話c=a;
而後面的兩句一定會執行。
❾ c語言程序設計題,我想在知道我錯哪了
while((a+3)%5==0&&(a-3)%6==0)a++
你這個是如果滿足條件a++,而缺缺為了找到滿足條件的數伏吵辯,應該是不滿足條件a++,你邏輯恰好反了,而且你這個循環也沒有退出條件,也是錯誤的。基本上整個代碼都不對吧。我給你改下
應該是
#include<stdio.h>
int main(int argc, char* argv[]){
int a=1;
while((a+3)%5!=0||(a-3)%6!=0)a++; //不需要外層循環
printf("%d\t",a); //注意這個要在循環外面
return 0; //注意這個碰伏返回值不要省略
}
❿ 我編程哪裡錯了(c語言)一位數和兩位數可以,一旦輸入三位數以上就無法輸出
你的程序演算法知燃沒錯,只是計算輸入值的位數時有兩處問題。
改正的程序如下(改動的地方見注釋)
#include <stdio.h>
#include <stdlib.h>物猛談
int main(){
int a,b,c,d,i=1,u,s=0,k=1,j,p;
scanf("%d%d",&a,&b);
u=a;//這里加罩碰一句,為u賦值a
while(u>=10){
u=u/10;//這里把u=a/10改成u=u/10
i=i+1;
}
for(p=1;p<=i;p++){
c=a%10;
d=b%10;
a=(a-c)/10;
b=(b-d)/10;
j=(c+d)%10;
s=s+k*j;
k=k*10;
}
printf("%d",s);
return 0;
}