原来是我错付了 发表于 2022-10-25 09:39:49

程序哪里有问题?

#include<stdio.h>
int main()
{
                int n,k,t=0,max=0,min=9;
                scanf("%d",&n);
                if(n==0)
                {
                max=min=0;
                t=1;
                }
                if(n>0)
                        {
                                        for(n;n>0;n/10)
                                        {
                                                        k=n%10;
                                                        if(k<9)min=k;
                                                        if(k>0)max=k;
                                                        t++;
                                        }
                        }
                printf("%d %d %d",t,max,min);
                return 0;
}
为什么无法输出结果?

tommyyu 发表于 2022-10-25 09:41:50

圈圈的地方改为n /= 10

xiaosi4081 发表于 2022-10-25 09:51:50

本帖最后由 xiaosi4081 于 2022-10-25 09:57 编辑

#include<stdio.h>
int main()
{
                int n,k,t=0,max=0,min=9;
                scanf("%d",&n);
                if(n==0)
                {
                max=min=0;
                t=1;
                }
                if(n>0)
                        {
                                        for(n;n>0;n/=10)
                                        {
                                                      k=n%10;
                                                      if(k<9)min=k;
                                                      if(k>0)max=k;
                                                      t++;
                                        }
                        }
                printf("%d %d %d",t,max,min);
                return 0;
}
n/10不改变n,只是返回n/10的值,所以会陷入死循环

xiaosi4081 发表于 2022-10-25 10:06:33

给个最佳?
页: [1]
查看完整版本: 程序哪里有问题?