1 Bài tập mảng một chiều - bài giải Sun Jan 08, 2012 4:35 pm
chipcoiga
Admin
1 Sử dụng hàm thực hiện các công việc sau:
a, nhập mảng
b, xuất mảng vừa nhập
c, đảo thứ tự mảng
d, tổng, tích các số dương a
e, sắp xếp theo thứ tự tăng dần
Bài giải:
a, nhập mảng
b, xuất mảng vừa nhập
c, đảo thứ tự mảng
d, tổng, tích các số dương a
e, sắp xếp theo thứ tự tăng dần
Bài giải:
- Code:
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define max 100
void nhapmang(int a[], int b){
int i;
for (i=0;i<b;i++) {
printf("\na[%d]= ",i);
scanf("%d",&a[i]);}
}
void xuatmang(int a[], int b){
int i;
for (i=0;i<b;i++) printf("\na[%d]= %d", i,a[i]);
}
void daomang(int a[], int b){
int i,t;
printf("\n\nMang sau khi dao:");
for (i=0;i<b;i++){
t=a[i];
a[i]=a[b-1-i];
a[b-1-i]=t;}
for (i=0;i<b;i++) printf("\na[%d]= %d",i,a[i]);
}
void tongtich(int a[], int b){
int i,s=0, t=1,dem=0;
for (i=0;i<b;i++){
if (a[i]>0){dem=dem+1;
s+=a[i];
t=t*a[i];}}
if (dem==0) printf("\nTrong mang khong chua so duong.");
else printf("\nTong la: %d\nTich la: %d", s,t);
}
void sapxepmang(int a[], int b){
int i,j,t;
for (i=0;i<b-1;i++)
for (j=i+1;j<b;j++){
if (a[i]>a[j]) {
t=a[i];
a[i]=a[j];
a[j]=t;}}
printf("\n\nMang sau khi sap xep lai:");
for (i=0;i<b;i++) printf("\na[%d]= %d",i,a[i]);
}
main(){
int n, a[max];
do {
printf("Nhap n:");
scanf("%d",&n);}
while (!(n>=4 && n<=20));
nhapmang(a,n);
xuatmang(a,n);
daomang(a,n);
tongtich(a,n);
sapxepmang(a,n);
getchar();
getchar();
}