用c语言写一个函数,从键盘得到整行的输入.

供稿:hz-xin.com     日期:2025-01-12
用C语言编写程序从键盘输入一个正整数数n,输出n!

编程实现计算n!,也就是n*(n-1)*(n-2)*....*1,可以通过递归函数来实现,具体实现方法:
#include 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!。
程序输出结果如下:

扩展资料:
所谓n的阶乘就是从1到n的乘积,所以除了递归法来实现以外,其实我们也可以通过一个for循环,从1到n依次求积同样可以达到计算n!的目地。
具体实现代码如下:
#include
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的阶乘)5120*/

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。2、例程:
#includechar c;int main(){ FILE * fp2 = fopen("output.txt", "w");//打开输出文件 if (fp2==NULL) {//若打开文件失败则退出 puts("不能打开文件!"); rturn 0; } c=getchar();//从键盘读取一个字符 fputc(c,fp2);//向输出文件写入一个字符 fclose(fp2);//关闭输出文件,相当于保存 return 0;}

在C语言中,可以使用gets函数来实现该功能。

要自己实现该函数,可以按照如下思路:

1 使用getchar读入字符。

2 依次赋值到数组对应元素上。

3 当读到
即换行结束操作。

4 在字符串结尾赋值结束符\0。

代码如下:

void get_line(char *s)
{
    while((*s=getchar()) != '
') s++;
    *s='\0';
}


#include <stdio.h>
void main()
{
int i;
char num[1000];
printf("输入一行数以换行符结束:");
for(i=0;;i++){
scanf("%c",&num[i]);
if(num[i]=='\n')
break;
}
}

汗,不用写函数。
本来就有:
头文件:stdio.h
函数: gets
例子:
char buf[1024];
gets(buf);

#include <stdio.h>
void main()
{
int num;
scanf("%d",&num);
printf("You have input %d",num);
}

#include<stdio.h>
int main()
{
char array[100];
int i=0;
printf("Enter data:");
while((array[i]=getchar())!='\n'&&i<100)
{
i++;
}
array[i+1]='\0';
printf("%s",array);
return 0;
}

用c语言写一个函数,从键盘得到整行的输入.
在C语言中,可以使用gets函数来实现该功能。要自己实现该函数,可以按照如下思路:1 使用getchar读入字符。2 依次赋值到数组对应元素上。3 当读到\\n即换行结束操作。4 在字符串结尾赋值结束符\\0。代码如下:void get_line(char *s){ while((*s=getchar()) != '\\n') s++; *s='\\0'...

在c语言中要从键盘直接读入一行字符串用gets函数能把多个以空格隔开的字...
gets()函数用来从标准输入设备(键盘)读取字符串直到换行符结束,但换行符会被丢弃,然后在末尾添加'\\0'字符。其调用格式为:gets(s);其中s为字符串变量(字符串数组名或字符串指针)。gets(s)函数与scanf("%s:",&s)\/* scanf("%s",s) *\/相似,但不完全相同,使用scanf("%s",&s);函数输入...

一个c语言问题,编写一个函数,从键盘输入一行字符,将此字符串中最长和...
\/\/#include "stdafx.h"\/\/vc++6.0加上这一行.#include "stdio.h"#include "string.h"int main(void){ char str[100][21]; int i,j,lmax,lmin,ln,imax,imin; printf("Type a line text( # end)...\\nstr="); for(i=0;i<100;i++) if(scanf("%s",str[i])...

C语言编程:写一个函数,输入一行字符,将此字符串中最长的单词输出...
if((c>b)&& (c<a)|| (ca))printf("\\n d 为位于中间的数\\n",c);} 这个是几个数中输出最大的数的!

scanf()如何读取一整行(转)
用scanf获取一行字符串包括空格的以及C语言函数其内容为#include<stdio.hint main(){char str[1024];scanf("%[^\\n]", &str);return 0;}说明:在scanf函数中, 可以使用%c来读取一个字符, 使用%s读取一个字符串, 但是读取字符串时不忽略空格,读字符串时忽略开始的空格,并且读到空格为止,因此只能...

C语言:我想从键盘上输入一个无限长的字符串,用什么函数啊?谢谢?
字符串输入函数gets 格式:gets(字符数组名)功能:从标准输入设备键盘上输入一个字符串。本函数得到一个函数值,即为该字符数组的首地址。【例7.13】include\\"stdio.h\\"main(){ charst[15];printf(\\"inputstring:\\");gets(st);puts(st);} 可以看出当输入的字符串中含有空格时,输出仍为全部...

用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出。要有详细...
int word(char c){ if((c>='a'&&c<='z')||(c>='A'&&c<='Z')) return 1;else return 0;} int longest(char str[])【这个函数几乎完全看不懂 望逐句详细解释其逻辑】{ int i,flag=1,len=0,point,max_len=0,max_point;for(i=0;i<=strlen(str);i++)\/\/解析每个字符 { i...

用c语言写一个函数,输入一行字符,将此字符串中最长的单词输出。要有详细...
include<string.h>\/\/字符串头文件 main()\/\/主函数 { char a[1024],b[20],d[20]={'a'}; \/\/定义字符串 int i=0,s=0,l;\/\/定义整形变量 gets(a);\/\/输入字符串,将其赋给a数组 for(;i<=strlen(a);i++)\/\/循环 { for(;s<=20;s++,i++)\/\/循环将a赋给b { if(a[i]==...

C语言编辑一个程序,用printf()输出一个整数
int main(void){ int number;int units, tens, hundreds; \/\/定义三个变量分别存储个位、十位和百位上的数字 scanf("%d", &number); \/\/读入一个三位数 hundreds = number \/ 100; \/\/ 一个三位数除以100的整数商,即百位上的数字 tens = (number % 100) \/ 10; \/\/number对100取模,得到后...

C语言 21.写一个函数,其输入参数为一个整数,返回值为该整数的打头数字...
可以参考下面的代码:include <stdio.h> include <stdlib.h> int yi(int m){ while(m>=10)m\/=10;return m;} int main(){ int a,b;printf("请输入一个整数:");scanf("%d",&a);if(a<0){ b=-yi(-a);} else b=yi(a);printf("该整数以%d打头!\\n",b);return 0;} ...