
C++在线等,高手速度来,有代码,改错即可!!
关于删除数组中相同元素的代码,如4333得到43#include<iostream.h>voidmain(){chars[20];cout<<"请输入一个数组:";cin...
关于删除数组中相同元素的代码,如4333得到43#include<iostream.h>
void main()
{
char s[20];
cout<<"请输入一个数组:";
cin>>s;
int i=0,k=0;
while(s[i+1]!='\0')
{if(s[i]==s[i+1])
{k++;}
else {s[i+1]=s[i+k+1];}
i++;
}
cout<<s<<endl;
}
我的思路是相同的记下,(++K)然后继续判断前后是否不同,再让数组跳K个,但是这个代码不满足,怎么改啊?
2.关于5X5数组,冒泡排序,要有INPUT和排序2个函数
我的函数没问题,但是编译显示不能输出结果,为何?
#include<iostream.h>
void Input_sz(int a[][5])
{for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
cout<<a[i][5]<<" "<<endl;
}
void Bubble_sort(int a[][5])
{
int t;
for(int j=0;j<25;j++)
{for(int i=0;i<25;i++)
{
if(a[i/5][i%5]>a[(i+1)/5][(i+1)%5])
{t=a[i/5][i%5];
a[i/5][i%5]=a[(i+1)/5][(i+1)%5];
a[(i+1)/5][(i+1)%5]=t;}}
}
int main()
{
int a[5][5];
Input_sz(a[][5]);
Bubble_sort(a[][5]);
for(int j=0;j<5;j++)
for(int i=0;i<5;i++)
cout>>a[i][j]>>" "<<endl;
} 展开
void main()
{
char s[20];
cout<<"请输入一个数组:";
cin>>s;
int i=0,k=0;
while(s[i+1]!='\0')
{if(s[i]==s[i+1])
{k++;}
else {s[i+1]=s[i+k+1];}
i++;
}
cout<<s<<endl;
}
我的思路是相同的记下,(++K)然后继续判断前后是否不同,再让数组跳K个,但是这个代码不满足,怎么改啊?
2.关于5X5数组,冒泡排序,要有INPUT和排序2个函数
我的函数没问题,但是编译显示不能输出结果,为何?
#include<iostream.h>
void Input_sz(int a[][5])
{for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
cout<<a[i][5]<<" "<<endl;
}
void Bubble_sort(int a[][5])
{
int t;
for(int j=0;j<25;j++)
{for(int i=0;i<25;i++)
{
if(a[i/5][i%5]>a[(i+1)/5][(i+1)%5])
{t=a[i/5][i%5];
a[i/5][i%5]=a[(i+1)/5][(i+1)%5];
a[(i+1)/5][(i+1)%5]=t;}}
}
int main()
{
int a[5][5];
Input_sz(a[][5]);
Bubble_sort(a[][5]);
for(int j=0;j<5;j++)
for(int i=0;i<5;i++)
cout>>a[i][j]>>" "<<endl;
} 展开
2个回答
展开全部
第一题:
while(s[i+1]!='\0')改成while(s[i]!='\0')
else {s[i+1]=s[i+k+1];改成else{s[i-k+1]=s[i+1];
程序:
#include<iostream.h>
void main()
{
char s[20];
cout<<"请输入一个数组:";
cin>>s;
int i=0,k=0;
while(s[i]!='\0')
{
if(s[i]==s[i+1])
{k++;}
else
{s[i-k+1]=s[i+1];}
i++;
}
cout<<s<<endl;
}
/*************************************************************************************/
第二题:void Bubble_sort(int a[][5]) 里面最后少一个 ‘}’
main()函数最后一句:cout<<a[i][j]<<" "<<endl;您写成了cout>>a[i][j]>>" "<<endl;注意cout<<不要写反了
程序:
#include<iostream.h>
void Input_sz(int a[][5])
{
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
cout<<a[i][5]<<" "<<endl;
}
void Bubble_sort(int a[][5])
{
int t;
for(int j=0;j<25;j++)
{
for(int i=0;i<25;i++)
{
if(a[i/5][i%5]>a[(i+1)/5][(i+1)%5])
{
t=a[i/5][i%5];
a[i/5][i%5]=a[(i+1)/5][(i+1)%5];
a[(i+1)/5][(i+1)%5]=t;
}
}
}////////////////少括号
}
int main()
{
int a[5][5];
Input_sz(a);
Bubble_sort(a);
for(int j=0;j<5;j++)
for(int i=0;i<5;i++)
cout<<a[i][j]<<" "<<endl; //cout<<a[i][j]<<" "<<endl >>>>
}
while(s[i+1]!='\0')改成while(s[i]!='\0')
else {s[i+1]=s[i+k+1];改成else{s[i-k+1]=s[i+1];
程序:
#include<iostream.h>
void main()
{
char s[20];
cout<<"请输入一个数组:";
cin>>s;
int i=0,k=0;
while(s[i]!='\0')
{
if(s[i]==s[i+1])
{k++;}
else
{s[i-k+1]=s[i+1];}
i++;
}
cout<<s<<endl;
}
/*************************************************************************************/
第二题:void Bubble_sort(int a[][5]) 里面最后少一个 ‘}’
main()函数最后一句:cout<<a[i][j]<<" "<<endl;您写成了cout>>a[i][j]>>" "<<endl;注意cout<<不要写反了
程序:
#include<iostream.h>
void Input_sz(int a[][5])
{
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
cin>>a[i][j];
cout<<a[i][5]<<" "<<endl;
}
void Bubble_sort(int a[][5])
{
int t;
for(int j=0;j<25;j++)
{
for(int i=0;i<25;i++)
{
if(a[i/5][i%5]>a[(i+1)/5][(i+1)%5])
{
t=a[i/5][i%5];
a[i/5][i%5]=a[(i+1)/5][(i+1)%5];
a[(i+1)/5][(i+1)%5]=t;
}
}
}////////////////少括号
}
int main()
{
int a[5][5];
Input_sz(a);
Bubble_sort(a);
for(int j=0;j<5;j++)
for(int i=0;i<5;i++)
cout<<a[i][j]<<" "<<endl; //cout<<a[i][j]<<" "<<endl >>>>
}
更多追问追答
追问
第二题是对的,但输出的数堆一起,与上面图差不多,怎么改?
追答
main()里for改成下面形式:
for(int i=0;i>>>
cout<<endl;
}
改动:两个for()里的i和j互换位置;(这是因为原来的输出方式会把原数组沿对角线对称后输出,如果非要这样输出可以不改for。) 还有,cout<<endl放到里面的for外,保证输出一组后换行。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询