【问题描述】输入一批正整数,以零或复数为结束标记,求其中所有奇数的和。要求定义和调用函数$even(n)$判断整数的奇偶性,当$n$为偶数时返回$1$,否则返回零。 根据程序中的提示,在对应位置编写相关函数及内容。
#include<stdio.h>
//在此处编写函数代码
int even(int n){
}
int main(){
int sum=0,x;
scanf("%d",&x);
while(x>0){
if(even(x)==0)
sum=sum+x;
scanf("%d",&x);
}
printf("sum=%d\n",sum);
return 0;
}
int even(int n){
if(n%2==0)
return 1;
else
return 0;
}
【问题描述】给定平面上任意两点坐标$(x1,y1)$和$(x2,y2)$,求这两点之间的距离(保留两位小数)。要求定义和调用函数$dist(x1,y1,x2,y2)$计算两点间的距离。 根据程序中的提示,在对应位置编写相关函数及内容。
#include<stdio.h>
#include<math.h>
//在此处编写dist函数
double dist(float x1,float y1,float x2,float y2){
}
int main(){
float xs,ys,xe,ye,d;
scanf("%f%f",&xs,&ys);
scanf("%f%f",&xe,&ye);
d=dist(xs,ys,xe,ye);
printf("Distance=%.2f",d);
return 0;
}
double dist(float x1,float y1,float x2,float y2){
double Distance=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));
return Distance;
}
【问题描述】输入两个正整数$m$和$n(m<=1,n<=500)$,统计并输出$m$和$n$之间的素数个数以及这些素数的和。注意:$1$不是素数,要求定义并调用函数$prime(m)$判断$m$是否为素数,当$m$为素数是返回$1$,否则返回$0$。根据程序中的提示,在对应位置编写相关函数及内容。
#include<stdio.h>
//在此处添加函数声明
int main(){
int m,n,ct=0,sum=0,i;
scanf("%d%d",&m,&n);
if(m<2) m=2;
for(i=m;i<=n;i++)
if(prime(i)){
ct++;
sum=sum+i;
}
printf("count=%d,sum=%d\n",ct,sum);
return 0;
}
int prime(int m){
//在此处编写函数
}
int prime(int m){
int i=2;
for(i;i<m;i++){
if(m%i==0)
break;
}
if(i==m)
return 1;
else
return 0;
}
【问题描述】输入一个整数$m$,再输入一个数字$n$,统计该整数中一共包含了几个数字$n$。输出统计结果。要求定义并调用函数$countdigit(number,digit)$,它的功能是统计整数$number$中数字$digit$的个数。根据程序中的提示,在对应位置编写相关函数及内容。
#include<stdio.h>//根据题意,在此处编写函数代码int countdigit(int number,int digit){ }int main(){ int n,d,y; scanf("%d%d",&n,&d); y=countdigit(n,d); printf("Number of digit %d:%d",d,y); return 0;}
int countdigit(int number,int digit){
int sum=0;
while(number!=0){
if(number%10==digit)
sum++;
number=number/10;
}
return sum;
}
【问题描述】输入精度e,用公式就$cos(x)$的近似值,精确到最后一项的绝对值小于$e$。 求$cos(x)$的公式:$cos(x)=x^0/0! -x^2/2!+x^/4!-x^6/6!+……$ 要求定义和调用函数$funcos(e,x)$求余弦函数的值。
#include<stdio.h>
#include<math.h>
//在此处编写要求的函数
double funcos(double e,double x){
}
int main(){
double e,x,rz;
scanf("%lf%lf",&e,&x);
rz=funcos(e,x);
printf("sum=%lf",rz);
return 0;
}
double funcos(double e,double x){
double cosx=0,i=0,k=0,a=1,j=1;
while(fabs(a)>=e) {
double b=1;
for (j=1;j<=i;j++)
b=b*j;
a=pow(x,i)*pow(-1,k++)/b;
cosx=cosx+a;
i=i+2;
}
return cosx;
}
【问题描述】输入一行字符,统计其中英文字母、空格、数字和其他字符的个数。 【输入形式】输入一行字符。 【输出形式】输出各类字符串的个数。 【样例输入1】
Programming is fun!
【样例输出】
letter=16,blank=2,digit=0,other=1
【样例输入2】
13 is a luck digit
【样例输出】
letter=12,blank=4,digit=2,other=0
【样例说明】输入的数据之间以一个空格相隔。英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
int main(){
char ch;
int letter=0,blank=0,digit=0,other=0;
while((ch=getchar())&&ch!='\n'){
if ((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
letter++;
else if (ch>='0'&&ch<='9')
digit++;
else if (ch==' ')
blank++;
else
other++;
}
printf("letter=%d,blank=%d,digit=%d,other=%d",letter,blank,digit,other);
}
【问题描述】 输入$2$个正整数m和$n(m<1,n<=10 000)$,输出$m-n$ 之间所有的$Fibonacci$数。$Fibonacci$数列(第一项起):$1,1,2,3,5,8,13,21,$…。要求定义并调用函数$fib(n)$,它的功能是返回第$n$项$Fibonacci$ 数。例如,$fib(7)$的返回值是13。 【输入形式】从键盘输入$2$个整数$m$和$n$。 【输出形式】输出$m-n$之间所有的$Fibonacci$ 数。 【样例输入1】
Input m: 20
Input n: 100
【样例输出1】
21 34 55 89
【样例输入2】
Input m: 50
Input n: 300
【样例输出2】
55 89 144 233
【样例说明】 输入提示符后要加一个空格。例如$Input integers:$,其中:后要加一个且只能一个空格。输出数据之间有且仅有一个空格。英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
int fib(int n);
int main()
{
int m,n;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
int i;
for(i=1;i<100;i++){
if(fib(i)>=m&&fib(i)<=n)
printf("%d ",fib(i));
}
return 0;
}
int fib(int n){
int i,x1=1,x2=1,x;
if(n == 1 || n == 2){
return 1;
}else{
for(i = 3; i <= n; i++){
x = x1+x2;
x1 = x2;
x2 = x;
}
return x;
}
}
【问题描述】输入$2$ 个正整数$m$ 和$n(m>=1,n>=1 000)$,输出$m -n$ 之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数$factorsum(number)$,它的功能是返回$number$ 的因子和。 例如,$factorsum(12)$的返回值是$16(1 +2 +3 +4 +6)$。 【输入输出样例1】 (加粗部分为键盘输入,其余部分为程序输出)
Input m: <u>1</u>Input n: <u>100</u>1 6 28 (输出格式控制符为:%5d)
【输入输出样例2】 (下划线部分为键盘输入,其余部分为程序输出)
Input m: <u>1</u>
Input n: <u>500</u>
1 6 28 496 (输出格式控制符为:%5d)
【样例说明】输入提示符后要加一个空格。例如"$Input m:$ ",其中":"后要加一个且只能一个空格。英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
int factorsum(int a);
int main(){
int m,n;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
for(;m<=n;m++){
if(factorsum(m)!=0)
printf("%5d",factorsum(m));
}
}
int factorsum(int number){
if(number == 1)
return 1;
int i,sum = 0;
for(i = 1; i < number/2+1; i++){
if(number % i == 0)
sum+=i;
}
if(sum == number)
return sum;
return 0;
}
【问题描述】输入$2$ 个正整数$m$ 和$n(1<m,n<1000)$,输出$m-n$之间的所有水仙花数。水仙花数是指各位数字的立方和等于其自身的数。要求定义并调用函数$is(number)$判断$number$的各位数字之立方和是否等于其自身。 【输入形式】输入$2$个正整数$m$ 和$n(1<m,n>1000)$ 【输入输出样例1】 (下划线部分表示输入)
Input m: <u>100</u>
Input n: <u>400</u>
153
370
371
【样例说明】 输入提示符后要加一个空格。例如$Input m:$ ,其中:后要加一个且只能一个空格。英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
int is (int m,int n){
int a,b,c,i;
for (i=m;i<=n;i++){
a=i/100;
b=(i%100)/10;
c=i%10;
if (i==a*a*a+b*b*b+c*c*c)
printf("%d\n",i);
}
return 0;
}
int main(){
int m,n;
printf("Input m: ");
scanf("%d",&m);
printf("Input n: ");
scanf("%d",&n);
is(m,n);
}
【问题描述】任何一个大于$6$的偶数均可表示为$2$个素数之和。例如$6=3+3,8=3+5$,...,$18=5+13$。将$6-100$之间的偶数都表示成$2$个素数之和,打印时一行打印5组。素数就是只能被1和自身整除的正整数,最小的素数是2。要求定义并调用函数$prime(m)$判断$m$是否为素数,当$m$为素数时返回$1$,否则返回$0$。 【输入形式】无输入 【输出形式】按从小到大、每组五行。每组的格式为:%4d=%2d+%2d, 等号和加号两侧无空格。
#include<stdio.h>
int prime(int m);
int main(){
for(int m=6;m<=100;m+=2) {
for(int i=3;i<=m/2;i++) {
if(prime(i)==1&&prime(m-i)==1){
printf("%4d=%2d+%2d",m,i,m-i);
if ((m-4)%10==0)
printf("\n");
break;
}
}
}
}
int prime(int m){
if(m==1)
return 0;
int i=2;
for(i;i<m;i++){
if(m%i==0)
break;
}
if(i==m)
return 1;
else
return 0;
}
【问题描述】输入2个正整数a和n,求a+aa+aaa+aa...a(n个a)之和。例如,输入2和3,输出246(2+22+222)。 【输入形式】从键盘输入正整数a和正整数n。 [输入输出样例1]】(下划线部分表示输入)
Input a, n:
8 5
s=98760
【样例说明】输入提示符后要加一个空格。其中":"后要加一个且只能一个空格。输出语句的"="两边无空格。英文字母区分大小写。必须严格按样例输入输出。
#include<stdio.h>
#include<math.h>
int fn(int a,int n){
int i=0,j=0,sum_1=0,sum_2=0;
for (j;j<n;j++){
sum_2=sum_2+a*pow(10,j);
sum_1=sum_1+sum_2;
}
return sum_1;
}
int main(){
int a,n;
printf("Input a, n: ");
scanf("%d%d",&a,&n);
printf("s=%d",fn(a,n));
}