Thứ Tư, 8 tháng 6, 2016



Nhập xuất cơ bản

Cách của C
CODE
//không dùng scan nếu muốn nhập khoảng trắng
gets(s); //có thể nhập khoảng trắng
puts(s);
fflush(stdin); //xóa bộ đệm nhập
c=getchar();
putchar©;


Cách của C++
CODE
//không dùng cin>> nếu muốn nhập khoảng trắng
cin.getline(a,21); //có thể nhập khoảng trắng
cout<<a;
cin.get(); //xóa bộ đệm nhập

--------------------------------------------------------------------------------------
Con trỏ cơ bản

CODE

int a=5,*p;
//p=3; //khong hop ve vi khong the gan gia tri kieu int cho bien kieu int*
//&p=3; //khong hop le vi dia chi cua p la co dinh
p=&a; //hop le, gan dia chi ma p tro den
*p=3; //hop le, gan gia tri tai dia chi ma p tro den
cout<<p<<endl; //cai gi do bat ki, dia chi cua a
cout<<&p<<endl; //cai gi do bat ki, dia chi cua p
cout<<*p<<endl; //3,dau * luc nay mang y nghia "gia tri tai dia chi cua"

--------------------------------------------------------------------------------------
Truyền giá trị cho hàm
Trong C có khái niệm con trỏ (pointer) Trong C++ có thêm khái niệm tham chiếu:

CODE
int a;
int& b=a;
Lúc này biến a có một cái nickname là b
Như vậy có tất cả 3 cách viết hàm và truyền tham số
Cách 1:
CODE
void add10(int a)
{
a=a+10;
}
gọi:
add10(n);
Không hiệu quả, a vẫn giữ nguyên giá trị

--------
Cách 2:
CODE
void add10(int *a)
{
*a=*a+10;

gọi:
add10(&n);
Hiệu quả.

-------
Cách 3:
CODE
void add10(int &a)
{
a=a+10;
} g
ọi:
add10(n);
Hiệu quả, tiện hơn cách 2

-------------------------------------------------------
Nhập xuất dữ liệu với kiểu mảng số nguyên
CODE
int a[3];
Truyền dữ liệu trực tiếp theo kiểu C, cách 1
CODE
for(int i=0;i<3;++i) scanf("%d",&(*(a+i)));
for(int i=0;i<3;++i) printf("%d",*(a+i));
Truyền dữ liệu trực tiếp theo kiểu C, cách 2
CODE
for(int i=0;i<3;++i) scanf("%d",&a[i]);
for(int i=0;i<3;++i) printf("%d",a[i]);
Truyền dữ liệu trực tiếp theo kiểu C++, cách 1
CODE
for(int i=0;i<3;++i) cin>>*(a+i);
for(int i=0;i<3;++i) cout<<*(a+i);
Truyền dữ liệu trực tiếp theo kiểu C++, cách 2
CODE
for(int i=0;i<3;++i) cin>>a[i];
for(int i=0;i<3;++i) cout<<a[i];
-----------------------------------------------------------------------------
Nhập xuất dữ liệu bằng hàm với kiểu mảng số nguyên
Nhập xuất dữ liệu bằng hàm với kiểu mảng số nguyên theo kiểu C, cách 1
CODE
void input(int[]);
input(a);
void input(int *a)
{
for(int i=0;i<3;++i)
scanf("%d",&(*(a+i)));
}
void output(int[]);
output(a);
void output(int *a)
{
for(int i=0;i<3;++i)
printf("%d",*(a+i));
}
Nhập xuất dữ liệu bằng hàm với kiểu mảng số nguyên theo kiểu C, cách 2
CODE
void input(int[]);
input(a);
void input(int a[])
{
for(int i=0;i<3;++i)
scanf("%d",&a[i]);
}
void output(int[]);
output(a);
void output(int a[])
{
for(int i=0;i<3;++i)
printf("%d",a[i]);
}
Nhập xuất dữ liệu bằng hàm với kiểu mảng số nguyên theo kiểu C++, cách 1
CODE
void input(int[]);
input(a);
void input(int *a)
{
for(int i=0;i<3;++i)
cin>>*(a+i);
}
void output(int[]);
output(a);
void output(int *a)
{
for(int i=0;i<3;++i)
cout<<*(a+i);
}
Nhập xuất dữ liệu bằng hàm với kiểu mảng số nguyên theo kiểu C++, cách 2
CODE
void input(int[]);
input(a);
void input(int a[])
{
for(int i=0;i<3;++i)
cin>>a[i];
}
void output(int[]);
output(a);
void output(int a[])
{
for(int i=0;i<3;++i)
cout<<a[i];
}
---------------------------------------------------------------
Nhập xuất dữ liệu với kiểu mảng số thực
Cách dùng biến tạm
CODE
float a[2][3],temp;
for(int i=0;i<2;++i)
for(int j=0;i<3;++j)
{
scanf("%f \n",&temp);
a[i][j]=temp;
}
Cách dùng con trỏ
CODE
float a[2][3];float *p;
p=(float*)a;
for(int i=0;i<2*3;++i)
scanf("%f",(p+i));
Nhập mảng số thực 2 chiều bằng cách dùng ép kiểu
CODE
float a[3][2];float *p;p=(float*)a;
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
scanf("%f",((float*)p+i*2+j));
Xuất mảng số thực 2 chiều bằng cách dùng ép kiểu
CODE
float a[3][2];float *p;p=(float*)a;
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
printf("%f\n",*(p+i*2+j));
Nhập mảng số thực 2 chiều bằng cách dùng malloc
CODE
float** p;p=(float**)malloc(2);
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
scanf("%f",(p+i*2+j));
Xuất mảng số thực 2 chiều bằng cách dùng malloc
CODE
float** p;p=(float**)malloc(2);
for(int i=0;i<3;i++)
for(int j=0;j<2;j++)
printf("%f\n",*(p+i*2+j));
Bài này chỉ có giá trị tham khảo, tổng hợp kiến thức.

0 nhận xét:

Đăng nhận xét

Categories

Sample Text

Được tạo bởi Blogger.

Must Read

Biểu mẫu liên hệ

Tên

Email *

Thông báo *

Popular Posts

Video

Popular Posts

Our Facebook Page