❶ 一道编程题不知道哪里错了 语言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;
}