ورود

View Full Version : جمع تعداد ارقام



mohammad2407
یک شنبه 06 بهمن 1392, 14:03 عصر
سلام دوستان عزیز من با کد زیر عددی از ورودی میخونم و بعد تعداد ارقام اون رو نمایش میدم

مثال : ورودی 1234

خروجی 4


#include "stdafx.h"
#include <iostream>
int main()
{
int n,t=0,r;
cin>>n;
while(n>0)
{
r=n%10
t++;
n=n/10;
}
cout<<t;
cin.get();
}


حالا میخوام اگر کاربر 0 وارد کرد برنامه 0 در نظر نگیره .

مثال : ورودی 102345

خروجی : 5
ممنون

mmvalinezhad
یک شنبه 06 بهمن 1392, 15:12 عصر
حالا میخوام اگر کاربر 0 وارد کرد برنامه 0 در نظر نگیره .
می توان با ساختار while این برنامه را نوشت:
#include <stdio.h>
#include <conio.h>

int main()
{
char ch;
int i=0;
while((ch=getche())!='\r')
{
if((ch-'0')!=0)
i++;
}
printf("\n%d",i);
getch();
return 0;
}
مکانیسم کلی:حلقه while تا زمانی که کلید enter زده نشده اجرا می شود و در داخل while شرطی وجود دارد که اگر اعداد ورودی مخالف صفر بودند به مقدار شمارنده بیفزاید.
توضیحات:
1-تابع getche تنها کد اسکی اعداد یا کاراکتر های ورودی را می خواند نه خود آن ها را.
2-شرط while به این صورت است که تابع getch کد اسکی کلید زده شده را می خواند و در متغیر ch قرار می دهد و اگر مقدار متغیر ch برابر با کد اسکی کلید enter یا همان r\ باشد شرط حلقه نقض می شود و حلقه از کار می افتد.
3-از آن جایی که تابع getch فقط کد اسکی کلید زده شده یا اعداد ورودی را می خواند باید مقدار متغیر ch را از '0' کم کنیم تا خود آن عدد به دست آید.
4-در شرط استفاده شده در بدنه حلقه فقط اگر مقدار عدد ورودی مخالف صفر باشد،به مقدار شمارنده (تعداد ارقام) می افزاید.