30/09/2018, 16:01

Bài tập mảng trong C++


Bài 1: Viết một hàm tính tổng các số được nhập trên dòng lệnh ( dùng hàm atoi để chuyển chuỗi thành số).
Ví dụ:
Nhập: 1 2 3 4 0
Xuất: 10

viết 18:07 ngày 30/09/2018
@Le_Ba_H_ng, anh lấy ví dụ của em ra để thảo luận tí. Trường hợp của em phù hợp để trả lời cho câu hỏi "Hỏi bài tập có giúp chúng ta giỏi lập trình hay không?" Bấm vào link này để xem thảo luận ở topic khác Tổng Hợp C,C++: Hỗ trợ giải tất cả các bài tập C & C++: Đạt tóm tắt lại sự việc, bạn @Le_Ba_H_ng là trường hợp đặc biệt, bạn ấy không phải sinh viên CNTT, nên việc bạn ấy không giỏi lập trình là bình thường. Bạn ấy thi hai lần rồi không qua được môn C++ nên @Le_Ba_H_ng lên Dạy Nhau Học …

Bạn đọc bài này trước khi đặt câu hỏi nè

viết 18:07 ngày 30/09/2018

Em đăng lên không phải để hỏi mà để thảo luận cách giải quyết, mà em là hs THPT, em mới học C++ thôi ạ
Anh có thể cho em ý tưởng làm bài không?

buithaiminh viết 18:03 ngày 30/09/2018

@Tiger Bạn vào mục lục này để tìm bài học về Mảng trong C++ Mục lục các bài học và bài viết hay Bài này rất đơn giản, sau khi xem phần Mảng bạn sẽ làm được ngay.

Trần Trí Dũng viết 18:13 ngày 30/09/2018

hàm atoi là hàm gì vậy

Lê Đình Huy viết 18:06 ngày 30/09/2018

Hàm (atoi…)
CHỨC NĂNG: Chuyển đổi chuỗi ký tự thành số nguyên
CÚ PHÁP:
(atoi str)
GIẢI THÍCH:
str : Là chuỗi ký tự (chứa các chữ số)

viết 18:18 ngày 30/09/2018

Mấy bạn làm đc bài trên ko cho mình ý tưởng với, mình gặp rắc rối với hàm atoi, mình chuyển char -> int xong ko được kết quả mong muốn

buithaiminh viết 18:10 ngày 30/09/2018

Ok, post code của bạn lên đây @Tiger

nguyen van tu viết 18:11 ngày 30/09/2018

bạn có thể cho mình hỏi nó ở trong bài nào trong c++ không. mình kiếm không thấy @btm

Nguyễn Minh Dũng viết 18:05 ngày 30/09/2018

À, phần atoi mình chưa làm @blacku9 ơi.
@Tiger Bài này hay đấy, nhưng không rõ nội dung cụ thể là nhập đại 1 chuỗi vào hay là sao. Đề bài tập em copy đầy đủ rồi hả.

Đây là ví dụ của hàm atoi (tức là hàm đổi từ chuỗi sang số)
http://www.tutorialspoint.com/c_standard_library/c_function_atoi.htm

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main()
{
   int val;
   char str[20];
   
   strcpy(str, "98993489");
   val = atoi(str);
   printf("String value = %s, Int value = %d\n", str, val);

   strcpy(str, "tutorialspoint.com");
   val = atoi(str);
   printf("String value = %s, Int value = %d\n", str, val);

   return(0);
}

Nhưng vấn đề của bài này là nhập chuỗi có khoảng trắng

Nhập: 1 2 3 4 0

Sau khi em nhập xong, em lại phải tách chuỗi ra thành từng phần nhỏ (cách nhau bởi khoảng trắng) rồi mới dùng atoi rồi mới + lại được. Thành ra cái đề từ dễ, thành khó (vì bắt buộc phải dùng atoi). Nếu không dùng atoi thì chắc là dễ hơn Không hiểu người ra đề có giải đề này chưa.

Đây là một cách giải đơn giản. Loại bỏ các vấn đề phức tạp của bài toán, chú trọng vào việc làm quen với hàm atoi

#include<stdio.h>

/*
 * Nhập vào một chuỗi các số có MỘT chữ số, cách nhau bằng khoảng trắng.
 * Trả về tổng của chuỗi đó, sử dụng atoi
*/
int main()
{
    printf("Nhap vao chuoi so: ");
    int sum = 0;
    char c;
    while((c = getchar()) != '\n') {
        if (c != ' ')
            sum += atoi(&c);
    }
    printf("sum = %d\n", sum);
    return 0;
}

Xem thêm từ bài C 24 -> C30 để nắm thêm về getchar nếu chưa xem qua

viết 18:12 ngày 30/09/2018

Thank a, hóa ra là dùng atoi(&c) , trước em toàn dùng atoi© thôi.

Nguyễn Minh Dũng viết 18:05 ngày 30/09/2018

Vậy là em đã làm thử, mà em không post code lên. Post lên có phải nhanh hơn không hehe

hóa ra là dùng atoi(&c) , trước em toàn dùng atoi© thôi.

atoi nhận vào là địa chỉ của char, tức char*. Trong trường hợp của em, em khai báo char c; nên em phải truyền địa chỉ của nó vào.

viết 18:07 ngày 30/09/2018

@Tiger cho mình rút lại comment ở trên nhé. Tại bạn k post code và lỗi của bạn lên.

Nguyễn Viết Thành viết 18:05 ngày 30/09/2018

xin lỗi mọi người,không liên quan một chút. mình có một bài toán, yêu cầu nhập vào một xâu gồm toàn kí tự số rồi in ra các kí tự đó dưới dạng số. Mình có lấy một cái mảng 2 chiều( từng ptu của mảng là 1 xâu) để gán từng kí tự của xâu sang mảng đó. Mình có dùng hàm atoi nhưng khi in bị lỗi, ai biết chỉ giúp mình với. Thanks mn

Bài liên quan
0