Làm sao để xoá 1 phần tử trong mảng (nếu biết trước vị trí cần xoá)
VỚI THUẬT TOÁN TỐI ƯU NHẤT (Độ phức tạp phải nhỏ hơn n)
Nhập từ bàn phím mảng a có n số nguyên. In ra màn hình mảng a vừa nhập, in phần tử lớn nhất, in phần tử nhỏ nhất của mảng, in vị trí phần tử lớn nhất, in vị trí phần tử nhỏ nhất của mảng.
#include <bits/stdc++.h>
using namespace std;
const long long maxint=1e6;
long long a[maxint],i,n,ln;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
cin>>a[i];
ln=a[1];
for (i=1; i<=n; i++)
ln=max(ln,a[i]);
for (i=n; i>=1; i--)
if (ln==a[i])
{
cout<<i;
break;
}
return 0;
}
viết chương trình tạo mảng gồm n bé hơn hoặc bằng 150
a) tính và đưa ra màn hình tích các số lẻ chia hết cho 3 trong mảng
b)đưa ra vị trí phần tử có giá trị nhỏ nhất trong mảng , nếu có nhiều giá trị nhỏ nhất thì đưa ra chỉ số lớn nhất
c)đưa ra màn hình sau khi được sắp sắp theo thứ tự tăng dần của các giá trị trong mảng
#include <bits/stdc++.h>
using namespace std;
long long a[150],i,s,n,nn;
int main()
{
cin>>n;
for (i=1; i<=n; i++) cin>>a[i];
s=1;
for (i=1; i<=n; i++)
if (a[i] %2!=0 && a[i]%3==0) s=s*a[i];
cout<<s<<endl;
nn=a[1];
for (i=1; i<=n; i++) nn=min(nn,a[i]);
for (i=n; i>=1; i--)
if (nn==a[i])
{
cout<<i<<endl;
break;
}
sort(a+1,a+n+1);
for (i=1; i<=n; i++) cout<<a[i]<<" ";
return 0;
}
Viết chương trình nhập vào mảng các số nguyên A gồm tối đa 30 phần tử, các phần tử có giá trị không quá 32767? Thông báo ra màn hình phần tử nhỏ nhất và vị trí của nó trong mảng?
Var a:array[1..30] of integer;
i,n,d,max:integer;
Begin
Write('Nhap so luong phan tu cua mang ');readln(n);
For i:=1 to n do
Begin
Write('Nhap phan tu thu ',i,' = ');readln(a[i]);
End;
max:=a[1];
For i:=2 to n do
Begin
If a[i] > max then
Begin
max:=a[i];
d:=i;
End;
End;
Write('Phan tu lon nhat la ',max,' o vi tri ',d);
Readln;
End.
Khi thực hiện một thao tác (xoá, sao chép, di chuyển…) phần văn bản nào đó, trước hết cần phải làm gì
A. Nháy nút Undo
B. Nháy nút Paste
C. Chọn phần văn bản
D. Nháy nút Cut
Viết chương trình nhập vào mảng a gồm n phần tử (n <40) n nhập từ bàn phím
Hãy in ra màn hình vị trí của phần tử có giá trị lớn nhất trong mảng nếu mảng có phần tử có cùng giá trị lớn nhất thì in ra màn hình của phần tử lớn nhất ở vị trí lớn nhất
#include <bits/stdc++.h>
using namespace std;
long long a[40],i,n,ln;
int main()
{
cin>>n;
for (i=1; i<=n; i++)
{
cin>>a[i];
}
ln=a[1];
for (i=1; i<=n; i++) ln=max(ln,a[i]);
for (i=n; i>=1; i--)
if (ln==a[i])
{
cout<<i;
break;
}
return 0;
}
1. Viết chương trình nhập vào mảng gồm n số nguyên, - Đếm và đưa ra số phần tử chẵn của mảng - đưa ra số chẵn lớn nhất trong mảng - Tính tổng các số ở vị trí lẻ trong mảng - Tìm giá trị phần tử lẻ nhỏ nhất
uses crt;
var a:array[1..100]of integer;
i,n,dem,max,t,min,dem1:integer;
begin
clrscr;
write('n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
dem:=0;
max:=-32000;
for i:=1 to n do
begin
if a[i] mod 2=0 then
begin
dem:=dem+1;
if max<a[i] then max:=a[i];
end;
if dem=0 then writeln('Trong day khong co so chan')
else begin
writeln('So so chan la: ',dem);
writeln('So chan lon nhat la: ',max);
end;
t:=0;
for i:=1 to n do
if i mod 2=1 then t:=t+a[i];
writeln('Tong cac so o vi tri le la: ',t);
min:=maxint;
dem1:=0;
for i:=1 to n do
if a[i] mod 2<>0 then
begin
inc(dem1);
if min>a[i] then min:=a[i];
end;
if dem1=0 then writeln('Trong day khong co so le')
else writeln('So le nho nhat la: ',min);
readln;
end.
Nhập vào 1 mảng có N số nguyên ( N< 1000 )
1) Tính tổng các số chia hết cho 3 trong mảng vừa nhập
2) Tìm giá trị nhỏ nhất trong mảng , đưa ra vị trí đó . Nếu có nhiều vị trí chứa giá trị nhỏ nhất thì đưa ra vị trí lớn nhất trong các vị trí đó .
uses crt;
var a:array[1..100]of integer;
i,n,t,min,vt:integer;
begin
clrscr;
write('Nhap n='); readln(n);
for i:=1 to n do
begin
write('A[',i,']='); readln(a[i]);
end;
t:=0;
for i:=1 to n do
if a[i] mod 3=0 then t:=t+a[i];
writeln('Tong cac so chia het cho 3 la: ',t);
min:=a[1];
for i:=1 to n do
if min>a[i] then min:=a[i];
vt:=1;
for i:=1 to n do
if min=a[i] then
begin
if vt<i then vt:=i;
end;
writeln('Gia tri nho nhat la: ',min);
writeln('Vi tri la: ',vt);
readln;
end.
Viết thuật toán và chương trình tìm giá trị lớn nhất(in ra vị trí chứa phần tử có giá trị lớn nhất) của dãy số gồm n số nguyên được nhập từ bàn phím. (Sử dụng mảng).
uses crt;
var a:array[1..100] of integer;
max,n,i:integer;
begin
writeln('nhap do dai cua day');readln(n);
for i:=1 to n do begin writeln('A[',i,']=;);readln(a[i]); end;
max:=a[1];
for i:=2 to n do if a[i] > max then begin
max:=a[i]; writeln('vi tri cua max trong day la',i);end;
readln
end.
thật ra thì cũng không cần biến max nhưng mình làm vậy cho dễ hiểu hơn nhé!
*Thuật toán:
-Bước 1: Nhập n và nhập dãy số
-Bước 2: max←a[1]; i←1;
-Bước 3: i←i+1;
-Bước 4: Nếu max<a[i] thì max←a[i];
-Bước 5: Nếu i<=n thì quay lại bước 3
-Bước 6: Cho for chạy từ 1 đến n
Nếu a[i]=max thì xuất i
-Bước 7: Kết thúc
Viết 2 chương trình con tìm Max, Min và vị trí của Max, Min trong mảng. Áp dụng: Nhập vào 1 mảng có n phần tử là các số nguyên, tìm số nguyên lớn nhất, nhỏ nhất và vị trí của các số đó trong mảng. Các số có giá trị thuộc kiểu int.
Input: đọc từ file 0100.inp
Dòng 1 là số nguyên dương n
Dòng 2 là n số nguyên
Output: ghi ra file 0100.out gồm 2 dòng:
Dòng 1 chứa số lớn nhất trong mảng và các vị trí của số lớn nhất;
Dòng 2 chứa số nhỏ nhất trong mảng và các vị trí của số nhỏ nhất
TRONG C ++