当前位置:首页 » 编程语言 » c语言编程从键盘输入任意个整数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编程从键盘输入任意个整数

发布时间: 2022-09-09 04:55:30

Ⅰ 用c语言编写程序从键盘输入一个正整数数n,输出n!

编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:

#include <stdio.h>

int Func(int n)
{
if(n < 2)

return 1;

else

return n*Func(n-1);

}

void main()
{
int n =0,m=0;

printf("请输入一个正整数:")

scanf("%d",&n);

m=Func(n);

printf("%d!=%d ",n,m);
}

在以上程序代码中,Func()为递归函数,主函数main()中接收键盘输入整数值后,调用Func()递归函数,首层m=n*(n-1)!,继续递归调用,m=n*(n-1)(n-2)!,这样逐层递归,直到计算出N!。

程序输出结果如下:

(1)c语言编程从键盘输入任意个整数扩展阅读:

所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。

具体实现代码如下:

#include <stdio.h>

int main() {
int n,i,s=1;
scanf("%d",&n);

for(i=1;i<=n;i++)//for循环求累积

s=s*i;

printf("%d ",s);

return 0;

}


/*
运行结果:(例如求5的阶乘)
5
120
*/

Ⅱ c语言编程由键盘输入任意一个整数,求其每位数字的平方和及平方根和。

#include
<math.h>
#include
<stdio.h>
long
main()
{
int
n;
int
ans=0;
double
ans1=0;
printf("请输入一个整数");
scanf("%d",&n);
while(n!=0)
{
long
temp=n%10;
ans+=temp*temp;
ans1+=sqrt(temp);
n/=10;
}
printf("平方和为%d\n",ans);
printf("平方和为%f\n",ans1);
return(0);
}
已经改过可以运行,既然输入整数,最后把n定义为整数类型,不是浮点类型。

Ⅲ C语言从键盘输入任意的10个整数,从中找出最大值和最小值并输出

1、找出最大值并输出的源代码如下:

#include <stdio.h>

int main() {

int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int loop, largest;

largest = array[0];

for(loop = 1; loop < 10; loop++) {

if( largest < array[loop] )

largest = array[loop];

}

printf("最大元素为 %d", largest);

return 0;

}

2、找出最小值并输出的源代码如下:

#include <stdio.h>

int main() {

int array[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0};

int loop, largest;

largest = array[0];

for(loop = 1; loop < 10; loop++) {

if( largest < array[loop] )

largest = array[loop];

}

printf("最小元素为 %d", largest);

return 0;

}

(3)c语言编程从键盘输入任意个整数扩展阅读

1、#include:是包含头文件命令,声明在这个地方插入别的文件中的代码。

2、#define 标识符 被标识符代表的字符串:其中,“define”为宏定义命令,“标识符”为所定义的宏名。

3、#if #else #endif:是条件编译命令,加上符号“#”的作用是:#if是编译器在编译代码时完成的,if是在程序在运行时完成的,两者的执行时期不同。

Ⅳ 用c语言编程从键盘输入任意10个正整数

定义一个变量a,接受键盘输入和变量sum保存a的各位数字之和,并依次对a进行除10操作,把a除10的余数加到sum中,直到a为0为止,sum最终的值就是a个位数字之和。

#include<math.h>#include<stdio.h>intmain(){ inta,sum=0; scanf("%d",&a); while(a){ sum+=a%10; a/=10; } printf("%d ",sum); return0;}/*输出:1234515*/

Ⅳ c语言如何实现输入任意多个整数

用循环结构。
具体操作如下。
int a;
scanf("%d",&a);
while(a!=0)
{
scanf("%d",&a);
}

这时,你输入任意个整数都行,两个整数中间用任意数量空格隔开,只要最后一个整数输入的是0就行了

Ⅵ C语言:编写程序从键盘输入不定数量的正整数

不考虑数据的存储,直接循环累计即可。

想要数据存储:

方法一:定义一个非常大的数组,循环输入并检测输入值,累计求平均。

方法二:动态数组,根据有效输入,实时扩展数组地址长度。

方法三:把每个数字创建成结构体,构建链表,实现自由扩展和删除。

下面我的代码是用方法二写的:

#include <stdio.h>

#include <malloc.h>

int input(int **nsp);//输入任意个整数,忽略负数,输入0结束,成功返回数组长度,失败返回-1

int main()

{

int i,len,sum=0,*nums=NULL;

len=input(&nums);

printf("输入的正整数为: ");

for(i=0;i<len;printf("%d ",nums[i]),i++)

sum+=nums[i];

printf(" ");

printf("个数为%d,平均值为%.2f ",len,(sum*1.0)/len);

free(nums);

return 0;

}

int input(int **nsp)

{

int len=0;

int n,*nTemp=NULL,*nums=NULL;

if(*nsp) free(*nsp),nsp=NULL;

while(1)

{

scanf("%d",&n);

if(n==0) break;

if(n>0)

{

if(nums==NULL)//记录首个数字

{

nums=(int *)malloc(sizeof(int));

if(!nums) return -1;

nums[len]=n;

len++;

}

else//非首数字,扩展内存空间

{

nTemp=realloc(nums,sizeof(int)*(len+1));

if(nTemp) nums=nTemp,nTemp=NULL;

nums[len]=n;

len++;

}

}

}

*nsp=nums;

return len;

}

Ⅶ C语言从键盘任意输入一个整数n,编程计算并输出1~n之间的所有素数之和.

#include<stdio.h>

int main()

{

int n,i,j,t,l;

int sum=0;

printf("请输入一个大于2的整数:");

scanf("%d",&n);

l=n;

for(;n>=2;n--)

{

for(i=2;i<n;i++)

{

if(n%i!=0)//判断其为素数

t=1;

else

{

t=2;

break;

}

}

if(t==1)

{

sum+=n;

//printf("%d ",n);//输出1-n之间的所有素数

}

}

printf("1-%d之间的所有素数和为:%d ",l,sum);

return 0;

}

运行结果:

(7)c语言编程从键盘输入任意个整数扩展阅读:

printf()函数的调用格式为: printf("<格式化字符串>", <参量表>)。

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出; 另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多, 各参数之间用","分开, 且顺序一一对应,否则将会出现意想不到的错误。

比如:

inta=1234;

printf("a=%d ",a);

输出结果为a=1234。

Ⅷ C语言编程:从键盘上输入任意整数,逆序输出其各位数字,同时求出其位数及各位数字之和。

记录输入内容(scanf("%d",&n);)

n%10分解出最后一位数字记录(x = n%10)

n/10去掉最后一位(2个int型相除,结果没有小数位)

循环执行1、2步,加入输出(完成要求:逆序)、累和(完成要求:求和,实现:sum+=x)

直至分解出最后一位(n/10 = 0)。

(8)c语言编程从键盘输入任意个整数扩展阅读:

例如,(a+b)*(c+d)转换为*,+,a,b,+,c,d。它的优势在于只用两种简单的操作,入栈和出栈就可以解决任何中序表达式的运算。其运算方式为:如果当前字符(或字符串)为数字或变量,则压入栈内;如果是运算符,则将栈顶两个元素弹出栈外并作相应运算,再将结果压入栈内。当前序表达式扫描结束时,栈里的就是中序表达式运算的最终结果。