-
27-05-2014, 05:30 PM #1
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Các bạn chỉ mình xem code này bị lỗi ở đâu với ạ.
Mình cần nhập danh sách tên người+số dt+ địa chỉ, rồi nhập 1 số điện thoại, tìm xem ai có số đó, phần tìm đó mình bị nhầm, bạn nào sửa hộ mình với ạ.
Code đây
Mã:#include <iostream.h>#include <stdlib.h>#include <string.h>#include <stdio.h>#define MAX 100typedef char mang[40];struct danhba{ mang ten,diachi,sodt;}; using namespace std; main(){ int n,i; danhba a[MAX]; mang dt; system("CLS"); cout<<"Nhap so nguoi:"; cin>>n; cin.get(); // loai bo dau Enter o bo nho dem ! for (i=1; i<=n; i++) { cout<<"------------------------------------------------"<<endl; cout<<"Nhap thong tin ve nguoi thu "<<i<<" :"<<endl; cout<<"Nhap ten :"; gets(a[i].ten); cout<<"Nhap dia chi:"; gets(a[i].diachi); cout<<"Nhap so dien thoai:"; gets(a[i].sodt); } system("CLS"); cout<<"============================================="<<endl; cout<<"In ra danh sach vua nhap :"<<endl; cout<<"============================================="<<endl; for (i=1; i<=n; i++) { cout<<"--------------------------------------------------"<<endl; cout<<"Thong tin cua nguoi thu "<<i<<" :"<<endl; cout<<"Ten :"<<a[i].ten<<endl; cout<<"Dia chi:"<<a[i].diachi<<endl; cout<<"So dien thoai:"<<a[i].sodt<<endl; } cout<<"Nhap so dien thoai can tim:"; gets(dt); cout<<"Thong tin ve nguoi co so dien thoai "<<dt<<" la:"<<endl; for (i=1; i<=n; i++) if ((a[i].sodt)==dt) { cout<<"Ten :"<<a[i].ten<<endl; cout<<"Dia chi :"<<a[i].diachi<<endl; cout<<"So dien thoai :"<<a[i].sodt<<endl; }}
if ((a[i].sodt)==dt)
nhưng mình chả hiểu tại sao ?View more random threads:
- Thêm vào đầu thêm vào cuối danh sách nối kép ???
- giúp mình xem sai chỗ nào với
- Ghi file csv trong c++ thành các hàng , cột
- Chuyển danh sách kề sang ma trận kề. Help
- C++: hàm trong class Tam giác bị lỗi: hàm kiểm tra và hàm tính diện tích!
- Chuyển đổi qua lại các cơ số bằng Stack
- Các bác xem giúp em làm sao mà cứ đến lúc nhập A[0][0] là bị lối runtime?????
- Cần giúp đỡ bài tập vẽ chữ số điện tử
- sắp xếp struct sinh viên theo điểm trung binh tăng dẫn
- Xin mọi người giúp mình bài tập C
-
27-05-2014, 05:31 PM #2
Junior Member
- Ngày tham gia
- Sep 2015
- Đang ở
- hà nội
- Bài viết
- 0
Chỗ đó là strcmp .
-
28-05-2014, 12:35 PM #3
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi daogiahieu
Mã:typedef char mang[40];//mang la charmang ten,diachi,sodt;// suy ra sodt cung la char
còn muốn so sánh a[i].sodt với dt thì bạn phải chỉnh là:
Mã:mang ten,diachi;//,sodt;che cái đây lạiint sodt;//đưa xuống đây
-
28-05-2014, 07:11 PM #4
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi prog10
Mã:for (i=1; i<=n; i++) if (strcmp(dt,a[i].sodt)==0) { cout<<"Ten :"<<a[i].ten<<endl; cout<<"Dia chi :"<<a[i].diachi<<endl; cout<<"So dien thoai :"<<a[i].sodt<<endl; }
-
29-05-2014, 06:41 PM #5
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi caovuhoangnam
Nếu mình muốn in ra danh sách cho cân như thế này
Mã:Tên học sinh | Ngày tháng năm sinh | Điểm Trung Bình| ----------------|--------------------------|--------------------- 1. Nguyên Văn A| 05/09/1992 |9.0 2. Phạm Văn B | 12/7/ 1992 | 8.8 3. Nguyên Văn Hải C | 30/6/1992 | 9.7
Với cả trước mình học pascal có thể khai báo là
a:array[4..10] of integer;
a:array['A'..'Z'] of integer;
thế trong C,C++ có thể khai báo được như thế không nhỉ ?, tức là biết trước giá trị nhỏ nhất, lớn nhất của số phần tử mảng ấy ?
-
29-05-2014, 06:42 PM #6
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
C++ có std::setw, ios::left, right gì đó mà [IMG]images/smilies/smile.png[/IMG]
Mà cái kí hiệu đó ko phải là max-min của mảng đâu, nó là dạng thô thiển của content-addressable đó.
-
30-05-2014, 11:20 AM #7
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi prog10
a:array['A'..'Z'] of integer;
trong C,C++ có cái nào tương tự không nhỉ ?
tại mình muốn tính số lần xuất hiện của từng chữ cái trong xâu thô [IMG]images/smilies/smile.png[/IMG]
trong pascal trước thì là
for i:=1 to length(st) do
a[st[i]]=a[st[i]]+1;
giờ trong C,C++ muốn làm thế thì phải sao nhỉ ?
còn cái std::setw, ios::left, right bạn viết thử cho mình như mình cần được không ạ ?
thanks bạn đã trả lời.
-
30-05-2014, 11:51 AM #8
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
^
Mã:char* c=s;for(; *c!='\0'; ++c) a[*c-'A']++; //lưu ý C/C++ đánh chỉ số từ 0
-
31-05-2014, 08:16 AM #9
Banned
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
Gửi bởi prog10
vì mình thấy c gán = xâu s sao lại cộng thêm được ?
với cả chỗ a[*c-'A']++ tức là sao nhỉ ?, sao nó lại tuơng đuơng a[st[i]]=a[st[i]]+1; được ?
sao lại trừ 'A' nữa ?
-
31-05-2014, 09:09 AM #10
Junior Member
- Ngày tham gia
- Sep 2015
- Bài viết
- 0
À, cái này là viết theo C [IMG]images/smilies/smile.png[/IMG]
1. c và s đều là con trỏ, mà con trỏ cũng chỉ là số nên làm tính đc.
2. *c có nghĩa là giá trị của ô nhớ c.
3. Chỉ số mảng bắt đầu từ 0 nên phải trừ A.
Mã:#include <string>//....std::string s;//.... int x=s.length();for(int i=0; i<x; ++i) a[i-'A']++;
khi đề cập đến đội hình MU, không thể ko nói tới một trong các câu lạc bộ bóng đá huyền thoại và với tầm ảnh hưởng nhất trong lịch sử của môn thể thao vua. Với hơn 1 thế kỷ còn đó và phát triển,...
Đội hình MU - Manchester United:...