为什么它不能用s、nr、p和nr1呢?

Why dosen't it cout s , nr , p and nr1?

本文关键字:nr1 nr 不能 为什么      更新时间:2023-10-16
#include <iostream>
using namespace std;
int main()
{
    int n,x,y,s=0,p=1;
    int nr,nr1;
    cout<<"n=";
    cin>> n ;
    cout<<"x=";
    cin>> x ;
    cout<<"y=";
    cin>> y;
    while(n!=0)
        {   
            if(n%10%x==0)
                s=s+n%10;
            nr++;
            if(n%10<y)
                p=p*(n%10);
            nr1++;       
        }
    cout<<"s="<<s<<"n";
    cout<<"nr="<<nr<<"n";
    cout<<"p="<<p<<"n";
    cout<<"nr1="<<nr1<<"n";
}

我可以为n , xy键入一个值,但之后不会显示任何结果。我真的不知道该怎么办。我认为最后的cout有问题,但我真的不知道什么。我真的很感激是否有人能提供帮助,因为我需要在两天内进行考试...

循环时有一个无限的。

您可以拥有逻辑,例如:

while(n!=0) 
{
   n = n%10;
   if(n%x==0)
       s=s+n ;
       nr++ ;
   if(n<y)
      p=p*n ;
      nr1++ ;
}

这将是您逻辑的答案。我使用了静态值,使其动态。使用输出的工作代码:http://codepad.org/b5kpwc6y

#include <iostream>
    using namespace std;
    int main() {
        int n = 123456;
        int x=2;
        int y=5;
        int s=0;
        int p=1;
        int digit = 0;
        while(n>0)
        {
            digit=n%10;
            if(digit%2==0)
            {
                s=s+digit;
            }
            if(digit<y)
            {
                p=p*digit;
            }
            n=n/10;

        }
        cout<<"nSum  = " << s;
        cout<<"nProd = " << p;
    }