Initializer and declaration error
Mar 17, 2021 at 7:57am
So the error comes up at "void read()" it says "expected initializer before ‘void’" im quite new to cpp and need help on this one. thanks beforehand
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
#include <iostream>
using namespace std;
#define ARR_LEN 5
int arr[ARR_LEN]
void read(){
cout<<"enter "<<ARR_LEN<<" numbers"<<endl;
for(int j=0; j<ARR_LEN; j++){
cin>>arr[j];
}
}
void write(){
cout<<"array is:"<<endl;
for(int i=0; i<ARR_LEN; i++){
cout<<arr[i]<<" ";
}
cout<<endl;
}
int main(){
read();
int iMax = 0;
for(int i=0; i<ARR_LEN; i++){
if(arr[i]>arr[iMax]){
max=arr[i];
iMax=i;
}
}
cout<<"max index: "<<iMax<<endl;
write();
int temp = arr[iMax];
arr[iMax]= arr[0];
arr[0] = temp;
write();
return 0;
}
|
Mar 17, 2021 at 8:06am
Add a semicolon at the end of line 7.
Remove line 27.
Mar 17, 2021 at 8:07am
int arr[ARR_LEN];
Mar 17, 2021 at 8:27am
Your code looks very c-ish.
Consider using modern C++.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#include <iostream>
#include <array>
#include <algorithm>
#include <utility>
using namespace std;
using Array = std::array<int, 5>;
void read(Array& arr)
{
cout<<"enter "<< arr.size() <<" numbers"<<endl;
for(auto& num : arr)
{
cin>> num;
}
}
void write(Array& arr)
{
cout<<"array is:"<<endl;
for(auto num: arr )
{
cout<< num <<" ";
}
cout<<endl;
}
int main()
{
Array arr;
read(arr);
auto max_val = std::max_element(arr.begin(), arr.end());
int max_idx = std::distance(arr.begin(), max_val) ;
cout << "max index: "<< max_idx << '\n';
cout << "max_val: " << *max_val << '\n';
write(arr);
std::swap(arr[0], arr[max_idx]);
write(arr);
return 0;
}
|
Output:
enter 5 numbers
1 2 3 4 5
max index: 4
max_val: 5
array is:
1 2 3 4 5
array is:
5 2 3 4 1
|
Mar 17, 2021 at 8:32am
Thank you. you people are amazing! i appreciate it.
Topic archived. No new replies allowed.