Hỏi/ Thắc mắc - Sử dụng hàm float cho mảng trong chương trình C++ | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Hỏi/ Thắc mắc Sử dụng hàm float cho mảng trong chương trình C++

jablonec

Rìu Chiến
Mình đang tập tành lập trình nên hơi ngu các bác ạ. Các bác cho em hỏi tại sao khi khai báo hàm float cho mảng lại báo lỗi như thế này ạ. Em cảm ơn nhiều.

C:\Users\TC\OneDrive\Documents\SLN\main.cpp|11|error: invalid types 'float [100][float]' for array subscript|
C:\Users\TC\OneDrive\Documents\SLN\main.cpp|13|error: invalid types 'float [100][float]' for array subscript|
C:\Users\TC\OneDrive\Documents\SLN\main.cpp|13|error: invalid types 'float [100][float]' for array subscript|


Đề bài toán là:
Tìm số bé nhất của một dãy số. In ra số này và vị trí của nó trong dãy. Chương trình sử dụng mảng a để lưu dãy số, n là số phần tử thực sự trong dãy, min lưu số bé nhất tìm được và k là vị trí của min trong dãy. min được khởi tạo bằng giá trị đầu tiên (a[0]), sau đó lần lượt so sánh với các số hạng còn lại, nếu gặp số hạng nhỏ hơn, min sẽnhận giá trị của số hạng này. Quá trình so sánh tiếp tục cho đến hết dãy. Vì số số hạng của dãy là biết trước (n), nên số lần lặp cũng được biết trước (n-1 lần lặp), do vậy chúng ta sẽ sử dụng câu lệnh for cho ví dụ này.

Code:

#include <iostream>
#include<conio.h>

using namespace std;

int main()
{
float a[100],i,n,min,k;
cout <<"Nhap so phan tu cua day:"; cin>>n;
for(i=0;i<n;i++) {cout <<"a["<<i<<"]="; cin>>a;}
min=a[0]; k=0;
for(i=1;i<n;i++) if(a<min) {min=a; k=i;}
cout<<" So be nhat la: "<<min<<", Tai vi tri: "<<k;
}
 

shinken

Búa Gỗ
Các biến i, n, k nên là số nguyên
int i, n, k;
a là mảng, không phải là biến đơn lẻ, báo lỗi do lệnh gán min = a
Source viết lại:

#include <iostream>
#include<conio.h>

using namespace std;

int main(void){
float a[100], min;
int i, n, k;
cout <<"Nhap so phan tu cua day:";
cin>>n;
for(i= 0; i < n; i++){
cout <<"a["<<i<<"]=";
cin >> a;
}
k= 0;
min= a[k];
for(i= 1; i < n; i++){
if(a < min){
min= a;
k= i;
}
}
cout<<" So be nhat la: "<<min<<", Tai vi tri: "<<k;
}
 
Sửa lần cuối:

jablonec

Rìu Chiến
Mình cũng đã nghĩ đến trường hợp các biến i, n, k là kiểu nguyên, nhưng sao ở đây không thể khai là kiểu thực được nhỉ? (float), Mình đã đọc lỗi trên mạng nhưng không thể tìm ra lý do. Đây là lý do mình hỏi ngu.
 

dongle905

Moderator
Thành viên BQT
Mình cũng đã nghĩ đến trường hợp các biến i, n, k là kiểu nguyên, nhưng sao ở đây không thể khai là kiểu thực được nhỉ? (float), Mình đã đọc lỗi trên mạng nhưng không thể tìm ra lý do. Đây là lý do mình hỏi ngu.
Vì biến i, n ,k là số đếm nên nó là số nguyên đó bác. Bác không thể đếm 1.2 1.3 được.
 
Top