30/09/2018, 16:01

Nhập vào một biển số xe gồm bốn chữ số và kiểm tra biển đã nhập có mấy nút

Yêu cầu:Viết chương trình nhập vào một biển số xe gồm bốn chữ số và kiểm tra biển đã nhập có mấy nút.VD:biển số 0123 có 6 nút.

int main(void)
{
    char c[4]="";
    int i=0,j=0,so=1,S=0;
    do
    {
        while((c[i]=getchar())!='
'&&i<4)
            i++;
        while((c[j])!='  '||(c[j])!='')
        {
            j++;
            if(isdigit(c[i]))
                so=1;
            else
            {
                so=0;
                break;
            }
        }
        if(j!=4&&so==0)
            printf("Bien so da nhap khong hop le.");
    }
    while(j!=4&&so==0);
    for(int k=0; k<4; k++)
        S=S+c[i];
    printf("Bien so xe da nhap co %d nut",S);
    return 0;
}
Phạm Hoàng Tuấn viết 18:03 ngày 30/09/2018

Bạn vào chỉnh lại định dạng bài code của bạn di nhé. Cách làm của bạn chưa đúng lắm. Mình fix lại theo cách này, bạn có thể tham khảo.

    #include "stdafx.h"
    #include "iostream"
    
    int TongChuSo(int n);
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	char c[4] = "";
    	int i = 0;
    	int	j = 0;
    	int so = 1;
    	int S = 0;
    	std::cout << "Nhap bien so: " << std::endl;
    	std::cin >> so;
    	if (std::cin && so >=1000 && so <=9999) //Nhap dung so 
    	{
    		S = TongChuSo(so);
    		std::cout << "So nut cua bien  " << so << " la : " << S % 10 << std::endl;
    
    	}
    	else
    	{
    		std::cout << "Bien so khong hop le " << std::endl;
    	}
    	
    	system("pause");
    	return 0;
    }
    
    int TongChuSo(int n)
    {
    	int s = 0;
    	while (n > 0)
    	{
    		s += n % 10;
    		n = n / 10;
    	}
    	return s;
    }
BaoLe viết 18:18 ngày 30/09/2018

Nhưng nếu biển số là 0123 thì sao bạn?

Phạm Hoàng Tuấn viết 18:01 ngày 30/09/2018

vậy thì bạn sửa lại dòng là
if (std::cin && so >=0&& so <=9999) //Nhap dung so

người dùng vẫn có thể nhập 12 thì có nghĩa là 0012. Kết quả không thay đổi. tuy nhiên nếu bạn muốn ép người dùng fai nhâp đủ 4 số thì bạn có thể viết 1 hàm kiểm tra số chữ số của biển số hoặc sử dụng cách nhập chuỗi rồi kiểm tra.

BaoLe viết 18:17 ngày 30/09/2018
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
int main() {
    char bien_so_xe[5];
    int Sum=0,check=0;
    printf("Hay nhap bien so xe cua ban:");
    do {
        gets(bien_so_xe);
        int j=0;
        while(bien_so_xe[j]!='\0') {
            if(isdigit(bien_so_xe[j]))
                check=1;
            else {
                check=0;
                break;
            }
            j++;
        }
        if(check==0)
            printf("Bien so da nhap khong hop le.\n");
    } while(check==0);
    for(int i=0; i<4; i++) {
        char thay_the[2]="";
        thay_the[0]=bien_so_xe[i];
        Sum=Sum+atoi(thay_the);
    }
    printf("Bien so xe da nhap co so nut bang %d.\n",Sum);
    return 0;
}

Lâu quá chưa xem bài này, giờ xem lại nên mới code lại.Nhờ mọi người kiểm tra có chính xác chưa?Thank you vì đã xem bài viết của mình.

Bài liên quan
0