小弟是个新手,今晚按老师要求编了个小程序,用以求一个整数的各位数之和以及位数,如123的各位数之和是6位数是3.由于平时疏于学习,遂花了不少时间才写出来。然而点击运行时却提示没错误但无法运行。
望各位前辈在嘲笑我连这么简单的问题都不会的同时能指点一下迷津,感激不尽……
弟所编程序如下
#include<stdio.h>
long S=0;
int Count=0;
void fun(long n)
{
int i=1,j=1;long m,t;
while(n>10^i);
{i++;}
Count=i;
do
{m=n%10^(j-1);
t=(n%10^j-m)/10^(j-1);j++;
S=S+t;}
while (i<j);
}
void mani ()
{
long n;
printf("Please input a number:");
scanf("%ld",&n);
n=n<0?(-n):n;
fun (n);
printf("count=%d,sum=%ld\n",Count,S);
}
如能指出错误所在及改正之法,那是最好,不胜感激 T T

解决方案 »

  1.   

    我这里可以运行。mani -> main后面加个scanf,省的运行完直接退出了。
    long S=0;
    int Count=0;
    void fun(long n)
    {
    int i=1,j=1;long m,t;
    while(n>10^i);
    {i++;}
    Count=i;
    do
    {m=n%10^(j-1);
    t=(n%10^j-m)/10^(j-1);j++;
    S=S+t;}
    while (i<j);
    }
    void main()
    {
    long n;
    printf("Please input a number:");
    scanf("%ld",&n);
    n=n<0?(-n):n;
    fun (n);
    printf("count=%d,sum=%ld\n",Count,S);
    scanf("%ld",&n);
    }
      

  2.   

    这个位置可以改一下..
    do
    {m=n%10^(j-1);
    t=(n%10^j-m)/10^(j-1);j++;
    S=S+t;}
    while (i<j);代码如下:
    do
    {
       int x=n%10;
       n=n/10;
    }while(n!=0)