Hiển thị kết quả từ 1 đến 8 / 8
  1. #1
    Tham gia
    29-09-2008
    Bài viết
    23
    Like
    0
    Thanked 0 Times in 0 Posts

    Ngạc nhiên các bác cao thủ giúp mình với

    Mình có đoạn code sau:

    #include<stdio.h>
    void main()
    {
    int sales;
    char grade;
    printf("sales: ");
    scanf("%d",&sales);
    printf("grade: ");
    scanf("%c",&grade);
    printf("%d\n",sales);
    printf("%c\n",grade);
    }
    Mình không hiểu tại sao mình mới nhập vào biến sales chưa kịp nhập biến grade thì chương trình đã thoát ra rồi.Nếu mình sửa lại đoạn code như sau thì đúng:

    #include<stdio.h>
    void main()
    {
    int sales;
    char grade;
    printf("grade: ");
    scanf("%c",&grade);
    printf("sales: ");
    scanf("%d",&sales);
    printf("%d\n",sales);
    printf("%c\n",grade);
    }
    có bạn nào hiểu rõ thì giải thích cho mình đi! thanks nhìu!
    Quote Quote

  2. #2
    Tham gia
    19-04-2010
    Bài viết
    156
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi haohmaru1985 View Post
    Mình có đoạn code sau:

    #include<stdio.h>
    void main()
    {
    int sales;
    char grade;
    printf("sales: ");
    scanf("%d",&sales);
    printf("grade: ");
    scanf("%c",&grade);
    printf("%d\n",sales);
    printf("%c\n",grade);
    }
    Mình không hiểu tại sao mình mới nhập vào biến sales chưa kịp nhập biến grade thì chương trình đã thoát ra rồi.Nếu mình sửa lại đoạn code như sau thì đúng:

    #include<stdio.h>
    void main()
    {
    int sales;
    char grade;
    printf("grade: ");
    scanf("%c",&grade);
    printf("sales: ");
    scanf("%d",&sales);
    printf("%d\n",sales);
    printf("%c\n",grade);
    }
    có bạn nào hiểu rõ thì giải thích cho mình đi! thanks nhìu!
    Khi bạn nhập cho biến sales, bạn gõ số nhấn ENTER. Giá trị số được gán cho sales, nhưng vùng đệm bàn phím vẫn còn ENTER. Lệnh scanf("%c",&grade); chấp nhận luôn ENTER cho grade. Nếu bạn gõ 100A rồi ENTER thì sales = 100, grade = 'A'. Để khắc phục, bạn thêm lệnh fflush(stdin) trước scanf("%c",&grade); nhằm xóa vùng đệm bàn phím. Lệnh này thường nằm sau lệnh nhập số và trước lệnh nhập ký tự hoặc xâu đó.

  3. #3
    Tham gia
    29-09-2008
    Bài viết
    23
    Like
    0
    Thanked 0 Times in 0 Posts
    Cám ơn bro nhiều nha ! Cho mình hỏi thêm bài này nha mí bro! (vì mình chưa học hàm nên mí bro viết cho mình xem cách thông thường để đọc dc dễ hiểu nha, thanks mọi nguười !)

    Viết chương trình nhập vào n, xuất ra ma trận theo qui luật như bên dưới:
    1 2 3 4
    2 3 4 3
    3 4 3 2
    4 3 2 1
    với n = 4

    1 2 3 4 5
    2 3 4 5 4
    3 4 5 4 3
    4 5 4 3 2
    5 4 3 2 1
    (với n=5)

  4. #4
    Tham gia
    29-05-2009
    Bài viết
    24
    Like
    0
    Thanked 1 Time in 1 Post

  5. #5
    Tham gia
    29-09-2008
    Bài viết
    23
    Like
    0
    Thanked 0 Times in 0 Posts
    To honmathoi: Bạn hiểu nhầm bài của mình rồi, trên trang web của bạn đưa là giải ra ma trận có dạng:
    1 2 3 4
    2 3 4 5
    3 4 5 6
    4 5 6 7
    (với n=4)

    còn bài của mình là dưới đường chéo phụ nó sẽ tiếp tục giảm một cách đối xứng với phần tử nằm trên đường chéo phụ, chứ ko phải cứ tiếp tục tãng lên:

    1 2 3 4
    2 3 4 3
    3 4 3 2
    4 3 2 1
    (với n = 4)
    các bạn nào biết xin chỉ giúp mình nhé, thanks all !

  6. #6
    Tham gia
    29-05-2009
    Bài viết
    24
    Like
    0
    Thanked 1 Time in 1 Post
    hì hì mình đọc không kỹ đề bài mong bạn thông cảm nhé,mình viết tạm cái này bạn dùng tạm,kết quả thì đúng nhưng giải thuật chưa được gọn cho lắm

    #include<stdio.h>
    #include<conio.h>
    void main()
    {
    int m,n,i,j,k;
    printf("Nhap cap ma tran:n=");
    scanf("%d",&n);
    for(j=0;j<n;j++)
    {
    m=1;
    for(i=1;i<=n;i++)
    {
    k=i+j;
    if(k<=n)
    printf("%3d",k);
    else
    {
    k=n-m;
    m++;
    printf("%3d",k);
    }
    }
    printf("\n");
    }
    getch();
    }

  7. #7
    Tham gia
    29-09-2008
    Bài viết
    23
    Like
    0
    Thanked 0 Times in 0 Posts
    Cho mình hỏi bài này sao chạy nó lại báo lỗi về hàm randomize(), nên sửa lại làm sao cho đúng vậy bạn? mình xài Visual C++ để viết.

    // BAI_101.cpp : Chuong trinh phat sinh ngau nhien mot tu ngau nhien tu 1 den 7 ki tu.

    // GIAI
    #include "stdafx.h"
    #include<stdio.h>
    #include<stdlib.h>
    #include<conio.h>

    #define MAX 7
    #define NUM 100
    void main()
    {
    int i,n,k;
    char s[MAX+1];
    randomize();
    printf("\n");
    for (n=0;n<NUM;n++)
    {
    s[0]=random('Z'-'A'+1)+'A';
    k=random(MAX)+1;
    for (i=1;i<k;i++)
    s[i]=random('z'-'a'+1)+'a';
    s[i]=0;
    printf("%-8s",s);
    }
    getch();
    }

  8. #8
    Tham gia
    19-04-2010
    Bài viết
    156
    Like
    0
    Thanked 1 Time in 1 Post
    Quote Được gửi bởi haohmaru1985 View Post
    Cám ơn bro nhiều nha ! Cho mình hỏi thêm bài này nha mí bro! (vì mình chưa học hàm nên mí bro viết cho mình xem cách thông thường để đọc dc dễ hiểu nha, thanks mọi nguười !)

    Viết chương trình nhập vào n, xuất ra ma trận theo qui luật như bên dưới:
    1 2 3 4
    2 3 4 3
    3 4 3 2
    4 3 2 1
    với n = 4

    1 2 3 4 5
    2 3 4 5 4
    3 4 5 4 3
    4 5 4 3 2
    5 4 3 2 1
    (với n=5)
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #define max 10

    void main()
    {
        
    int a***91;max***93;***91;max***93;, nkj;
        
    printf("\nNhap so n = "); scanf("%d",&n);
    //NHập ma trận
        
    for (k0nk++)
            for (
    j0nj++)
                {
                    if (
    na***91;k***93;***91;j***93; = 1;
                    else 
    a***91;k***93;***91;j***93; = 2*n-k-j-1;
                }
    //In ra ma trận
        
    for (k0nk++)
            {
                for (
    j0nj++) printf("%4d",a***91;k***93;***91;j***93;);
                
    printf("\n\n");
            }
        
    getch();


    [=========> Bổ sung bài viết <=========]

    Quote Được gửi bởi haohmaru1985 View Post
    Cho mình hỏi bài này sao chạy nó lại báo lỗi về hàm randomize(), nên sửa lại làm sao cho đúng vậy bạn? mình xài Visual C++ để viết.

    // BAI_101.cpp : Chuong trinh phat sinh ngau nhien mot tu ngau nhien tu 1 den 7 ki tu.
    PHP Code:
    #include <stdio.h>
    #include <conio.h>
    #include <stdlib.h> // Chứa srand(), rand()
    #include <time.h>   // Chứa time()

    #define MAX 7
    #define NUM 100

    void main()
    {
        
    int i,n,k;
        
    char s***91;MAX+1***93;;
        
        
    srand((unsigned)time(NULL)); //Phải có cái này để đặt lại seed.

        
    printf("\n");
        for (
    n=0;n<NUM;n++)
            {
                
    s***91;0***93;=rand()%26 'A';
                
    rand()%MAX 1;

                for (
    i=1;i<k;i++) s***91;i***93;= rand()%26 +'a';
                
    s***91;i***93;=0;
                
                
    printf("%-8s",s);
            }
        
    getch();

    Được sửa bởi onminh lúc 15:01 ngày 02-05-2010 Reason: Bổ sung bài viết

Bookmarks

Quy định

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