用C语言编一个程序求一个数各位数之积
这个问题逗迅咐其实很简单!
办法有两个,
1.因为不知道你要输入的是几位数,所以可以用动态数组,输入数字之后,每一个位置其实就只有一个数字,那么就可以山纯直接用每个位置的数字相乘!
2,不用动态数组的话,可以直接用int,思路是,不停的除以昌消10,求余数,得到的余数就是那一位的数字!一直到余数为0的时候停止!
这里只给出大概思路。可以根据这两个思路自己编!
祝你成功!
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
main()
{
int i,n,x;
char s[256];
printf( "Please input a number:");
scanf( "%d", &n );
sprintf( s, "%d", n );
x=1;
for( i=0; i<strlen(s); i++)
{
x *= (s[i]-0x30);/*说明一下,一个数字字符减去字符'0'的ascii值就是拍春他对应的数值,比如'2'-'0'的值就是袭拆耐2 */
}
printf( "x=%d\n", x );
getch();
}
或者
#include <御数stdio.h>
#include <stdlib.h>
main()
{
int i,x;
char s[256];
printf( "Please input a number:");
scanf( "%s", s );
x=1;
for( i=0; i<strlen(s); i++)
{
x *= (s[i]-0x30);
}
printf( "x=%d\n", x );
getch();
}
#include <stdio.h>
#include <iostream>蠢游
#define digit 20 /带拍销/数贺段的位数
int main()
{
char ch[digit];
int len,i;
long sum=1;
printf("请输入要进行操作的数:\n");
gets(ch);
len=strlen(ch);
for(i=0;i<len;++i)
sum*=(ch[i]-'0');
printf("结果是%ld\n",sum);
}
#include <stdio.h>扰困
void main()
{
int n,t,s=1;
printf("缓悄念Input number:");
scanf("%d"运或,&n);
do
{
t=n%10;
s*=t;
n=n/10;
}while(n);
printf("Resault:%d\n",s);
}
#include<stdio.h>
#include<宏橘stdlib.h>
int main(int argv, char** argc)
{
long p = 1;
int n = atoi(argc[1]);
do
{
p *= n%10;
}
while((n /指枝= 10) != 0);
printf("out[%s]:%ld\n"唯绝敏,argc[1],p);
return 0;
}