‘壹’ c语言实现各位数字的相乘
C语言用这个,C++用楼上那个。
#include<stdio.h>
int main()
{
int n, i;
char c;
printf("\n Please input an integer number (decimal), this program will get the proct of every digit of the number. End the input with \"Enter\".\n ");
n=1;
c=getchar();
while(c !='\n')
{ if(c<'0' || c>'9')
{ printf("\n Error! The input is incorrect. The character input just now is not a digital. Finish.\n",n);
return 0;
}
if(c=='0')
{ printf("\n The character input just now is \"0\", the proct is \"0\". No need to input more.\n Finish.\n",n);
return 0;
}
n*=(int)(c-48);
c=getchar();
}
printf("\n The proct is \"%d\". \n Finish.\n", n);
return 1;
}
‘贰’ c语言多个数相乘
#include <stdio.h>
int main(){
int t=1;
for(int i=1;i<=5;i++)
t*=i;
printf("%d",t);
return 0;
}
‘叁’ C语言大整数相乘
我用C语言写了一个,在VC2005下测试通过。
#include <stdio.h>
#include <string.h>
typedef unsigned char CHAR;
typedef unsigned int UINT;
/*十进制形式的a与b,注意低位在前高位在后*/
CHAR a[10000];/*被乘数*/
CHAR c[20000];/*乘积和乘数*/
UINT temp1,temp2;/*用来存放中间结果*/
UINT da, db; /*记录a和b的位数*/
/*清零*/
void Zero( CHAR* x, UINT n )
{
UINT i;
for ( i = 0; i < n; i ++ )
x[i] = '0';
}
CHAR CharToNum( CHAR c )
{
return c - 0x30;
}
CHAR NumToChar( CHAR c )
{
return c + 0x30;
}
/*这个函数模拟大整数的左移*/
void LShift( CHAR* x, int digits )
{
UINT i;
for ( i = 0; i < digits - 1; i ++ ) {
x[i] = x[i+1];
}
x[digits] = 0;
}
/*这个乘法函数计算大整数a与给定的y的乘积,乘积加入c右半部*/
void OneDigitMultiply( UINT y )
{
UINT i;
UINT cm = 0; /*乘法进位*/
UINT ca = 0; /*加法进位*/
if ( y != 0 ) {
for ( i = 0; i < da; i ++ ) {
/*乘*/
temp1 = ((UINT)a[i]) * y + cm;
cm = temp1 / 10;
temp1 %= 10;
/*加*/
temp2 = ((UINT)c[i+10000]) + temp1 + ca;
if ( temp2 > 9 ) {
ca = 1;
temp2 -= 10;
} else {
ca = 0;
}
c[i+10000] = temp2;
}
c[da+10000] += cm + ca;
}
else {
/*如果被乘数本位是0就直接返回*/
return;
}
}
/*这个函数用来输出*/
void OutputResult()
{
CHAR* p = c + 20000;
while( *p == 0 ) {
p --;
}
printf("乘积是:\n");
while( *p != 'x' ) {
printf("%d", *p);
p --;
}
}
void main()
{
Zero( a, 10000 );
Zero( c, 10000 );
printf("输入被乘数:");
scanf("%s",a);
printf("输入乘数:");
scanf("%s",c);
/*记录位数*/
da = strlen( (const char*)a );
db = strlen( (const char*)c );
/*反转以使低位在前*/
strrev( (char*)a );
strrev( (char*)c );
UINT i;
/*a与b存储的是char字符,减去0x30就能直接当数字使用了*/
for ( i = 0; i < 10000; i ++ ) {
if ( a[i] != '\0' ) {
a[i] = CharToNum( a[i] );
}
}
for ( i = 0; i < 20000; i ++ ) {
if ( c[i] != '\0' ) {
c[i] = CharToNum( c[i] );
}
}
/*这个乘法算法可以参看二进制乘法器的原理*/
for ( i = 0; i < db; i ++ ) {
OneDigitMultiply( c[0] );
LShift(c, 20000);
}
c[10000-db-1] = 'x'; /*给数字尾部作个标记*/
OutputResult();
getchar();
getchar();
}
第二题:
#include <stdio.h>
void main()
{
float a;
scanf("%f",&a);
if ( a - (int)a == 0 ) {
printf("是整数\n");
}
else {
printf("不是整数\n");
}
getchar();
getchar();
}
‘肆’ C语言问题,要求输入一个数,输出该数分别于1~10的数相乘的结果。有什么比较简单的方法吗
用for循环:
inta;
scanf("%d",&a);
for(inti=1;i<11;i++)
{
printf("%d*%d=%d ",a,i,a*i);
}
‘伍’ c语言编写三个数乘积
好久都没碰过c语言了。。。除非你输入的最后一个数是最小的,否则一直你的max会一直都输出的是最后一个数字
if(z>x,z>y)只要满足一个条件,就会执行
a=z
你是要同时满足两个条件,所以必须要加上and
也就是要写成if(z>x&&z>y)
上面的也要这么改
‘陆’ C语言2个数相乘
两数相乘的C语言编程:
(6)C语言一个数的各个数相乘扩展阅读:
C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。
C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
‘柒’ C语言,求任意两数相乘的积!
#include <stdio.h>
void main()
{
int a,b,c;
printf("请输入a和b的值:");
scanf("%d %d", &a, &b);
c = a * b;
printf("a*b = %d ",c);
}
(7)C语言一个数的各个数相乘扩展阅读:
C语言中,运算符的运算优先级共分为15 级。1 级最高,15 级最低。 在表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符 优先级相同时,则按运算符的结合性所规定的结合方向处理。
结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式x-y+z 则y 应先与“-”号结合,执行x-y 运算,然后再执行+z 的运算。这种自左至右的结合 方向就称为“左结合性”。
而自右至左的结合方向称为“右结合性”。最典型的右结合 性运算符是赋值运算符。如x=y=z,由于“=”的右结合性,应先执行y=z 再执行x=(y=z)运算。C语言运算符中有不少为右结合性,应注意区别,以避免理解错误。
‘捌’ 用C语言程序输入一个三位数,计算并输入各位数上的乘积
#include<stdio.h>
void main()
{
int a;
printf("请输入一个三位数:");
scanf("%d", &a);
printf("各位数上的乘积为:%d\n", (a/100) * (a%10) * (a/10%10));
}
‘玖’ 用C语言编一个程序求一个数各位数之积
这个问题其实很简单!
办法有两个,
1.因为不知道你要输入的是几位数,所以可以用动态数组,输入数字之后,每一个位置其实就只有一个数字,那么就可以直接用每个位置的数字相乘!
2,不用动态数组的话,可以直接用int,思路是,不停的除以10,求余数,得到的余数就是那一位的数字!一直到余数为0的时候停止!
这里只给出大概思路。可以根据这两个思路自己编!
祝你成功!
‘拾’ C语言中怎样编写求出任意数的所有乘积
int main(void)
{
int i,n;
scanf("%d",&n);
for(i=1;i<n/2;i++){f
if(0==n%i)
printf("%d\n",i);
}
printf("%d\n",n);
}