Vòng lặp for bỏ qua giá trị

Chương trình em viết khi test với n%m=1 thì giá trị cuối cùng sẽ bị bỏ qua không in ra. Mong các bác giải thích giúp cái này với?

#include "time.h"
#include "windows.h"
#include "conio.h"

int mangnguyen(int mang[], int n);
void main()
{
    int i, j, m, n;
    int *mang1;
    while(1)
    {
        system("cls");
        printf("Nhap m va n: ");
        scanf("%d %d",&m,&n);

        mang1=malloc(n*sizeof(int));

        mangnguyen(mang1, n);
        printf("\n");
        for (i=0;;i++)
        {
            for (j=0;j<m;j++)
            {
                printf("%d\t",mang1[i*m+j]);

                if (i*m+j==n-1) break;
            }
            printf("\n");
            if (i*m+j==n-1) break;

        }
        getch();
        free(mang1);
    }

}

int mangnguyen(int mang[], int n)
{
    int i;
    srand(time(NULL));
    for(i=0;i<n;i++)
    {
        mang[i]=rand()%200-100;
    }
    return(0);
}

Sau khi rời for trong thì j bằng mấy bạn :slight_smile: xét hai trường hợp.

2 Likes

Em hiểu r, cảm ơn bác nhiều nhá

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