01/10/2018, 10:56

Giải phẫu bài mảng một chiều trong C

#include<stdio.h>
int main() {
	int a[10];
	int i;
	for(i=0;i<10;i++) {
		printf("ban hay nhap gia tri: 
");
		scanf("%d",&a[i]);
		}
		printf("mang cua ban sau khi nhap la:  
");
		for ( i=0;i<10;i++) {
			printf("%d	",a[i]);
		}
	return 0;
}

như tiêu đề mọi người có thể giải phẩu bài này giúp em ạ
tại sao đã gán này rồi: for ( i=0;i<10;i++) mà khi em nhập > 10 là 100 thì nó vẫn nhận
sao nó vẫn chạy ?? lẽ ra phải kết thúc chứ ta vì chỉ nhận i<10, nếu nó k quan tâm đến cái i<10 này thì tại sao khi nhập chữ nó lại qan tâm để rồi kết thúc vòng lặp và ra các con số nhìn khó hiểu @@! ( 1-0-4203689-3-0-50-0-0-0)

Henry viết 13:07 ngày 01/10/2018

Bạn nhập dữ liệu cho a[i]. Không phải cho i.
Thay a[i] bằng i mà nhập lớn >= 10 là ngừng liền

rogp10 viết 13:06 ngày 01/10/2018

Câu hỏi 2: cái này bạn phải dùng giá trị trả về từ scanf.

anhkhoa viết 13:06 ngày 01/10/2018

vậy bõ phần dưới em ghi đi, anh giải phẩu giúp em đoạn code đó ra word đc k ạ :v em hơi khó hiểu

Đạt Trình viết 13:11 ngày 01/10/2018

chương trình này bạn nhập i vào hay gán sẵn cho nó giá trị là i = 100 từ bên ngoài for
nếu bên ngoài dù có vào trong for nó cũng ra i = 0 trước thôi,
qua câu for( i = 0; i < 10; ++i) biến i của bạn bị gán lại i = 0 rồi nhen =))

anhkhoa viết 13:10 ngày 01/10/2018

Ra là vậy hiểu rồi, scanf chỉ là ghi cho vui thôi phải ghi trong từ i = 0 thành i =50 hay i=100 gì đó ^^, cảm ơn anh nhiều

Bài liên quan
0