30/09/2018, 20:51

mọi người giúp đỡ em bị lỗi này không biết do phần mềm hay đoạn code nữa

khi em chạy chương trình ->nhập n sau khi em nhâp dữ liệu xong rồi không hiện ra kết quả sau đó nhập thêm lần nữa mấy hiện ra kết quả đề bài:Viết chương trình tìm các số nguyên gồm 3 chữ số sao cho tích của 3 chữ số bằng tổng 3 chữ số. Ví dụ: 123 = 1+2+3.
đoạn code của em:

#include<stdio.h>
#include<stdlib.h>
int main( ) {
	
	int n;
	printf("nhap n:");
	scanf(" %i ",&n);
	int i,donvi,hangtram,hangchuc,so;
	for(i=1;i<=n;i++)
	{
		donvi=i%10;
		so=i/10;
		hangchuc=so%10;
		hangtram=i/100;
		if((donvi+hangchuc+hangtram)==(donvi*hangchuc*hangtram))
		{
			printf(" %i %i %i ",donvi,hangchuc,hangtram);
		}
		
	} 
	return 0;
}
Tao Không Ngu. viết 22:53 ngày 30/09/2018

This post was flagged by the community and is temporarily hidden.

Người bí ẩn viết 22:53 ngày 30/09/2018

scanf(" %i ",&n);

Cái này nên ghi là scanf("%d",&n) nhé!

for(i=1;i&lt;=n;i++)

Đề bài là viết chương trình tìm các số nguyên 3 chữ số thì xét cái trường hợp 1 chữ số và 2 chữ số chi nữa?
Code của bạn cũng rất rối:

for(i=1;i<=n;i++)
	{
		donvi=i%10;
		so=i/10;
		hangchuc=so%10;
		hangtram=i/100;
		if((donvi+hangchuc+hangtram)==(donvi*hangchuc*hangtram))
		{
			printf(" %i %i %i ",donvi,hangchuc,hangtram);
		}

Tại sao bạn không đặt 1 biến phụ nào đó và gán cho nó giá trị i để khi tính toán xong, mình có có biến để xuất ra kết quả chứ?
Mình sửa lại như sau nhé, bạn copy xem coi chạy đúng không vì mình chưa chạy thử

for (int i = 100; i <= 999; i++)
{
    int temp = i;
    donvi = temp%10;
    temp/=10;
    hangchuc = temp%10;
    hangtram = temp/10;
    if ((donvi+hangchuc+hangtram) == (donvi*hangchuc*hangtram))
        printf("Ketqua: %d\n",i);
    else
        continue;
}

**: Nhớ khai báo bên ngoài các biến donvi ; hangchuc ; hangtram vì trong code mình chưa khai báo

Bài liên quan
0