Code tính tổng dãy bị sai

#include<stdio.h>
int main()
{
	int a[10], i, n, tong=0, *ptr;
	printf("Nhap so n:");
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		printf("Mang a[%d]:",i);
		scanf("%d",&a[i]);
	}
	ptr = a;
	for(i=1;i<=n;i++)
	{
		tong = tong + *ptr;
		ptr++;
	}
	printf("tong = %d \n", tong);
}

Sai sao? Sao sai?

2 Likes

Lần sau bạn post câu hỏi nên rõ ràng nhé, quăng cái này như spam vậy @@ !

Dạ. Em đánh xong nhập số ngay phần tính tổng của các số thì nó không tính ra ạ mà nó ra dãy số khác

Nhập mảng phải chạy từ 0 nha bạn.

for (int i = 0; i < n; i++)

3 Likes

Vì bạn nhập cho a1, a2, a3, . ., an.

Mà lại tính tổng của dãy a0, a1, a2, . ., an - 1. :slight_smile:

2 Likes

Dạo này thấy nhiều bạn hỏi mà đưa mã vòng lặp toàn chạy từ 1 đến n. Không biết có học chung 1 thầy hay không nhỉ? Hay là học nhầm sang ngôn ngữ Lua script (chỉ số mảng từ 1).

4 Likes

Hoặc từ cấp 2, 3 quen Pascal rồi. :laughing: :laughing:

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?