Вот код для печати элементов массива. Я получаю сообщение об ошибке. Кто-нибудь может узнать, в чем проблема с кодом?
#include <iostream>
using namespace std;
int print_r(char arrName,int len){
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
}
}
int main(){
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
print_r(a,3);
return 0;
}
int print_r(char arrName,int len)
должно быть
void print_r(int *arrName,int len)
вы не перенастраиваете что-либо, чтобы оно было недействительным, а не int, и вы объявили массив как целое, почему вы используете char?
int
и для char
, я думаю, что это невозможно, мне нужна другая функция для char array
например void print_r(char *arrName,int len)
Могу ли я сделать одну функцию для обоих ???
Изменить::
int print_r(char arrName,int len){
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
}
к
int print_r(int* arrName,int len){ // You are passing int array to print_r
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
return 0 ; // int print_r( int*, int ) will expect an int return value
}
Явная ошибка в том, что вы передаете int*
аргументу char
в функцию. Надеюсь, что это help-
#include <iostream>
using namespace std;
void print_r(int arrName[],int len){
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
}
}
int main(){
int a[3];
a[0]=1;
a[1]=2;
a[2]=3;
print_r(a,3);
return 0;
}
вместо этого вы также можете определить прототип как
void print_r(int *arrName, int len)
{
//Function body lies here
}
При определении вашей функции int print_r измените тип возврата на void, т.е.
int print_r(char arrName,int len){
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
}
}
//Instead use this
void print_r(char arrName,int len){
for(int i=0;i<len;i++){
cout<<arrName[i]<<"\t";
}
}