谁知道这俩错误是咋来的?invalid conversion from `int' to `int*'

s867097115 2011-12-04 01:23:22

#include<iostream>
using namespace std;
#define n 100
int row;
int createnextrow(int a[n]){
int i,j,p=1,m;
int b[m];
for(i=0;i<n;){
b[j+1]=a[i];
while(a[++i]==b[j+1]) {p++;}
b[j]=p;
j+=2;
}
cout<<"NO."<<row;
for(i=0;i<j;i++)
cout<<b[j]<<" ";
for(i=0;i<n;i++){ //将b[]复制给a[]
a[i]=b[i];
}
}
int main(){
int a[n]={1,3};
for(row=1;row<=10;row++)
createnextrow(a[n]);
system("pause");
}
------------------------------------------------------
------------------------------------------------------
24 invalid conversion from `int' to `int*'
24 initializing argument 1 of `int createnextrow(int*)'

谁知道这俩错误是咋来的?thinks
...全文
5381 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
s867097115 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gameslq 的回复:]
//4处错误
//1.数组作为参数传递问题
//2.int b[m]; m要初始化大小
//3.createnextrow要有返回值
//4.main 要有返回值

//以下为修改后的程序
#include<iostream>
using namespace std;
#define n 100
#define m 100 //问题2
int row;

int crea……
[/Quote]
万分感谢各位仁兄!数组总是不会用。
另外,
for(i=0;i<j;i++)
cout<<b[j]<<" ";
这一行也错了。附上最后成功的代码:
#include<iostream>
using namespace std;
#define n 100
int row=1;
int createnextrow(int a[]){
int i=0,j,p=1;
int b[n];
for(j=0;j<n&&a[i]!=0;){
b[j+1]=a[i];
p=1;
while(a[++i]==b[j+1]) {p++;}
b[j]=p;
j+=2;
}
cout<<"NO."<<row;
for(i=0;i<j;i++)
cout<<" "<<b[i];
cout<<endl;
for(i=0;i<j;i++){ //将b[]复制给a[]
a[i]=b[i];
}
return 0;
}
int main(){
int a[n]={1,3};
cout<<"NO."<<row<<" "<<a[0]<<" "<<a[1]<<endl;
for(row=2;row<=8;row++)
createnextrow(a);
system("pause");
}
wumuzi 2011-12-04
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 gameslq 的回复:]
//4处错误
//1.数组作为参数传递问题
//2.int b[m]; m要初始化大小
//3.createnextrow要有返回值
//4.main 要有返回值

//以下为修改后的程序
#include<iostream>
using namespace std;
#define n 100
#define m 100 //问题2
int row;

int crea……
[/Quote]
问题还有吧,你的j都没有赋初值。而且数组中j+=2会不会导致数组越界?
gameslq 2011-12-04
  • 打赏
  • 举报
回复
//4处错误
//1.数组作为参数传递问题
//2.int b[m]; m要初始化大小
//3.createnextrow要有返回值
//4.main 要有返回值

//以下为修改后的程序
#include<iostream>
using namespace std;
#define n 100
#define m 100 //问题2
int row;

int createnextrow(int a[]){ //问题1
int i,j,p=1;
int b[m];
for(i=0;i<n;){
b[j+1]=a[i];
while(a[++i]==b[j+1]) {p++;}
b[j]=p;
j+=2;
}
cout<<"NO."<<row;
for(i=0;i<j;i++)
cout<<b[j]<<" ";
for(i=0;i<n;i++){ //将b[]复制给a[]
a[i]=b[i];
}

return 0;// 问题3
}
int main(){
int a[n]={1,3};
for(row=1;row<=10;row++)
createnextrow(a); //问题1

system("pause");

return 0; //问题4
}
turing-complete 2011-12-04
  • 打赏
  • 举报
回复
#include<iostream>
using namespace std;
#define n 100
int row;
void createnextrow(int a[n]){
int i,j = 0, p=1 ;
int b[n];
for(i=0;i<n;){
b[j+1]=a[i];
while(a[++i]==b[j+1]) {p++;}
b[j]=p;
j+=2;
}
cout<<"NO."<<row;
for(i=0;i<j;i++)
cout<<b[j]<<" ";
for(i=0;i<n;i++){ //将b[]复制给a[]
a[i]=b[i];
}
}
int main(){
int a[n]={1,3};
for(row=1;row<=10;row++)
createnextrow(a);
system("pause");
}
mstlq 2011-12-04
  • 打赏
  • 举报
回复
#include<iostream>
#include<cstdlib>
using namespace std;
#define n 100
int row;
int createnextrow(int a[n])
{
int i, j, p = 1, m;
int b[m];
for (i = 0; i < n;)
{
b[j+1] = a[i];
while (a[++i] == b[j+1]) {p++;}
b[j] = p;
j += 2;
}
cout << "NO." << row;
for (i = 0; i < j; i++)
cout << b[j] << " ";
for (i = 0; i < n; i++) //将b[]复制给a[]
{
a[i] = b[i];
}
}
int main()
{
int a[n] = {1, 3};
for (row = 1; row <= 10; row++)
createnextrow(a/*[n]*/);
system("pause");
}

64,651

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧