Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Giải thích dùm mình vòng for lo^`ng.

  1. #1
    Ngày gia nhập
    05 2007
    Bài viết
    2

    Question Giải thích dùm mình vòng for lo^`ng.

    Yêu cầu đề bài: Tính tổng các số hoàn hảo.
    Hỏi: E muốn các anh giải thích cho em về hoạt động của vòng for lo^`ng ở cả cách đúng và cách sai. Em vẫn chưa hiểu vòng for lo^`ng chạy như thế nào, phiền các anh giải đáp hộ em. Thanks so much!
    Cách giải sai:
    HTML Code:
    #include<stdio.h> #include<conio.h> void main() { int i,j,n,arry[20]; int total,sum=0; clrscr(); do{ printf("\n Nhap n=");scanf("%d",&n); } while(n<2||n>100); for(i=0;i<n;i++) { printf("\n Nhap ptu arry[%d]=",i+1); scanf("%d",&arry[i]); } for(i=0;i<n;i++) { total=0; for(j=1;j<arry[i];j++) { if(arry[i]%j==0) total+=j; { if(total==arry[i]) sum+=total; } } } printf("\n Tong cac so hoan hao la:%d",sum); getch(); }
    Cách giải đúng:
    HTML Code:
    #include<stdio.h> #include<conio.h> void main() { int i,j,n,arry[20]; int total,sum=0; clrscr(); do{ printf("\n Nhap n=");scanf("%d",&n); } while(n<2||n>100); for(i=0;i<n;i++) { printf("\n Nhap ptu arry[%d]=",i+1); scanf("%d",&arry[i]); } for(i=0;i<n;i++) { total=0; for(j=1;j<arry[i];j++) { if(arry[i]%j==0) total+=j; } if(total==arry[i]) sum+=total; } printf("\n Tong cac so hoan hao la:%d",sum); getch(); }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 10-07-2007 lúc 11:01 PM.

  2. #2
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Đơn giản for lo^`ng là như này (ặc chữ lo^`ng giống chữ ấy quá nên diễn đàn cấm đánh phải viết thế này)
    VD:
    Code:
    for(int i = 1;i <= n;i ++)
        for(int j = 1;j <= m;j++)
    Thì khi vòng lặp thứ nhất chạy
    khi i = 1; thì vòng for thứ hai sẽ chạy cho đến khi j = m
    khi i = 2; thì vòng for thứ hai lại sẽ chạy cho đến khi j = m
    ......
    cứ thế khi nào i = n; thì vòng for thứ hai lại cũng lại sẽ chạy cho đến khi j = m

    for lo^`ng đơn giản vậy thôi

    Còn mình gợi ý bài số hoàn hảo của cậu
    Cậu nên viết một hàm bool ktsohoanhoa(int n)
    rồi trong main cậu làm một cái vòng lặp for rồi nếu số là số hoàn hảo thì cho tổng = tổng + số
    In code we trust

  3. #3
    Ngày gia nhập
    05 2007
    Bài viết
    2

    Hịc em hỏi chưa rõ nên câu trả lời chưa được như ý muốn! Ý em muốn hỏi là trong "cách đúng" và 'cách sai" thì vòng for chạy ở "cách đúng" khác "cách sai" như thế nào ?????

  4. #4
    Ngày gia nhập
    05 2007
    Bài viết
    33

    Trích dẫn Nguyên bản được gửi bởi phongvan0818 Xem bài viết
    Hịc em hỏi chưa rõ nên câu trả lời chưa được như ý muốn! Ý em muốn hỏi là trong "cách đúng" và 'cách sai" thì vòng for chạy ở "cách đúng" khác "cách sai" như thế nào ?????
    code giống nhau y đúc, thì làm gì tồn tại sự khác nhau???
    NOTHING GONNA CHANGE MY LOVE FOR C

  5. #5
    Ngày gia nhập
    05 2007
    Bài viết
    2

    Code giống nhau nhưng có cái ngoặc ở vòng for thứ 2 khác nhau nên kết quả khác nhau==>anh thử xem

  6. #6
    Ngày gia nhập
    01 2007
    Nơi ở
    Somewhere I belong
    Bài viết
    168

    Mặc định Giải thích dùm mình vòng for lo^`ng.

    Code:
    for(i=0;i<n;i++)
    	{
    		total=0;
    		for(j=1;j<arry[i];j++)
    		{
    			if(arry[i]%j==0)
    			total+=j;
    		}
    			if(total==arry[i])
    			sum+=total;
    	}
    Tức là vòng for trong chỉ thực hiện lệng
    Code:
    if(arry[i]%j==0)
    total+=j;
    khi vòng for trong thực hiện xong thì vòng for ngoài mới thực hiện
    Code:
    if(total==arry[i])
    sum+=total;
    còn cái trên kia
    Code:
    for(i=0;i<n;i++)
    	{
    		total=0;
    		for(j=1;j<arry[i];j++)
    		{
    			if(arry[i]%j==0)
    			total+=j;
    			{
    				if(total==arry[i])
    				sum+=total;
    			}
    		 }
    	}
    thì vòng for trong thực hiện hết cả các câu lệng
    Code:
    if(arry[i]%j==0)
    total+=j;
    {
    	if(total==arry[i])
    	sum+=total;
    }
    Đã được chỉnh sửa lần cuối bởi iamvtn : 10-07-2007 lúc 11:16 PM.
    In code we trust

Các đề tài tương tự

  1. Bài tập C nhờ các bác giúp dùm bài vòng lặp for này nói thật là thằng em bí quá rồi=.="
    Gửi bởi yaibakakasa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 02-11-2013, 11:49 PM
  2. các bạn chỉ dùm vòng lặp cho textbox hoặc label trong c#
    Gửi bởi dophuhao trong diễn đàn Nhập môn lập trình C#, ASP.NET
    Trả lời: 2
    Bài viết cuối: 28-04-2013, 08:41 AM
  3. [C] ai giải dùm bài tập nầy đi !! hix
    Gửi bởi janny trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 12-07-2012, 11:06 PM
  4. Bài tập C++ giải dùm bài C++
    Gửi bởi hikariharu trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 6
    Bài viết cuối: 31-05-2012, 04:30 AM
  5. Giải thích dùm em với!
    Gửi bởi Kim Thoa trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 2
    Bài viết cuối: 29-10-2007, 09:17 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn