4-1 判断数字字符
编写函数,判断指定的字符是否是数字字符,如果是函数返回1,否则函数返回0.要求在主调函数中输入该字符,调用函数并输出判断结果。
输入格式:
在一行中给出1个字符。
输出格式:
对于给定输入的字符,输出判断结果yes或no。
输入样例:
6
输出样例:
yes
输入样例:
H
输出样例:
no
#include<stdio.h>
int ifnumber(char x);
int main(void)
{
char x;
scanf("%c",&x);
if(ifnumber(x)) printf("yes\n");
else printf("no\n");
return 0;
}
int ifnumber(char x)
{
if(x>='0'&&x<='9')
return 1;
return 0;
}
4-2 乘法口诀表
请编写程序,输出 n×n 的乘法口诀表。
输入格式
n
输出格式
n×n 的乘法口诀表。
样例输入
5
样例输出
1x1= 1
1x2= 2 2x2= 4
1x3= 3 2x3= 6 3x3= 9
1x4= 4 2x4= 8 3x4=12 4x4=16
1x5= 5 2x5=10 3x5=15 4x5=20 5x5=25
提示:乘号为小写字母 x;乘积域宽2格(右对齐);两列之间空1格;行末没有空格。
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
int i,j,ji;
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
ji=i*j;
if(i==1)
{printf("%dx%d=%2d",j,i,ji);}
else if(i>=2&&j!=i)
{printf("%dx%d=%2d ",j,i,ji);}
else if(i>=2&&j==i)
{printf("%dx%d=%2d",j,i,ji);}
}
printf("\n");
}
return 0;
}
4-3 求函数的值
已知 s(x)=x−x^3/1!x3+x^5/2!x5−x^7/3!x7+...。编写程序,求s(x)前10项的和,x从键盘输入。
输入样例:
从键盘输入x的值
1
输出样例:
输出结果保留2位小数
s = 0.75
#include<stdio.h>
#include<math.h>
double fact(int x);
int main(void)
{
int i,j=1,flag=1,x;
scanf("%d",&x);
double sum=0,item=x;
for(i=1;i<=10;i++)
{
sum+=item;
flag=flag*-1;
j=j+2;
item=flag*pow(x,j)/(j*fact(i));
}
printf("s = %.2f",sum);
return 0;
}
double fact(int x)
{
int result=1,i;
for(i=1;i<=x;i++)
{
result*=i;
}
return result;
}
4-4 简单求阶乘问题
本题要求编写程序,计算N的阶乘。
输入格式:
输入在一行中给出一个不超过12的正整数N。
输出格式:
在一行中输出阶乘的值。
输入样例:
4
输出样例:
24
#include<stdio.h>
int main(void)
{
int N,i;
scanf("%d",&N);
double result=1;
for(i=1;i<=N;i++)
{
result*=i;
}
printf("%.0f",result);
return 0;
}
4-5 使用选择法将数组中的整数按由小到大排序
编写选择法排序函数,使用选择法将数组中的整数按由大到小排序。
输入格式:
从键盘上给大小为10个元素的整型数组随意赋值。
输出格式:
在一行中按从大到小顺序输出10个整数(每个整数按5列宽度输出)。
输入样例:
-5 28 67 0 2 7 -6 5 36 -10
输出样例:
67 36 28 7 5 2 0 -5 -6 -10
#include<stdio.h>
int main(void)
{
int maxindex,a[10],i,j,item;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<9;i++)
{
maxindex=i;
for(j=i+1;j<10;j++)
{
if(a[j]>a[maxindex])
{maxindex=j;
}
}
item=a[i];
a[i]=a[maxindex];
a[maxindex]=item;
}
for(i=0;i<10;i++)
{
printf("%5d",a[i]);
}
return 0;
}
4-6 符号函数
请编写下面的符号函数。
函数原型
double Sign(double x);
输入格式
x
输出格式
y
输入样例1
75.8
输出样例1
1
输入样例2
-87.5
输出样例2
-1
输入样例3
0
输出样例3
0
#include<stdio.h>
double Sign(double x);
int main(void)
{
double x;
scanf("%lf",&x);
printf("%.0f",Sign(x));
return 0;
}
double Sign(double x)
{
double y;
if(x>0) y=1;
else if(x==0) y=0;
else y=-1;
return y;
}
4-7 查找整数
描述
在一个有n个元素的整数序列中查找一个给定的值key,输出key在此序列中第一次出现的位置。
例如:在序列[1,2,3,5,8,0,2,1,7,9,5,13]中,查找5的结果是4,表示找到了,第一次出现在位置4(第4个数).
输入
第一行包含一个正整数k,表示有k组测试数据。1 <= k <= 100。接下来是k组数据。
对于每组数据,首先包含一行两个整数,n和key,表示该组数据整数序列的元素个数n和要查找的值key。(1 <=n<=1000)
然后的一行中包含n个整数,依次给出序列的每个元素,相邻两个整数之间用单个空格隔开。
题目中所有元素和key的绝对值不超过10000。
输出
对于每组数据,若序列中存在key,输出key第一次出现的位置;否则输出-1。
每个输出单独占一行。
样例输入
3
5 3
2 3 3 6 7
4 5
1 2 3 4
1 1
1
样例输出
2
-1
1
#include<stdio.h>
int main(void)
{
int k,n,key,i,j,index,flag=0;
scanf("%d",&k);
for(i=1;i<=k;i++)
{
int a[1001]={0};
flag=0;
index=0;
scanf("%d%d",&n,&key);
for(j=1;j<=n;j++)
{
scanf("%d",&a[j]);
}
for(j=1;j<=n;j++)
{
if(key==a[j]) {
index=j;
flag=1;
break;
}
}
if(flag)
printf("%d\n",index);
else printf("-1\n");
}
return 0;
}
4-8 函数返回三个整数的和
请编写自定义函数,功能为返回三个整数的和。主函数的功能为输入三个整数,调用你的自定义函数输出它们的和。(请至少用2种方法完成)
输入样例:
18 -299 81
输出样例:
-200
#include<stdio.h>
int sum(int,int,int);
int main(void)
{
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
printf("%d",sum(x,y,z));
return 0;
}
int sum(int x,int y,int z)
{
int sum=0;
sum=x+y+z;
return sum;
}
4-9 数组翻转
给定一个长度为n的数组a和一个整数size,请你编写一个函数,void reverse(int a[], int size),实现将数组a中的前size个数翻转。
输出翻转后的数组a。
输入格式:
第一行包含两个整数n和size。1≤size≤n≤1000
第二行包含n个整数,表示数组a。
输出格式:
共一行,包含n个整数,表示翻转后的数组a。
输入样例:
5 3
1 2 3 4 5
输出样例:
3 2 1 4 5
#include<stdio.h>
void reverse(int a[],int size);
int main(void)
{
int n,size,a[80],i;
scanf("%d%d",&n,&size);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
reverse(a,size);
for(i=0;i<n;i++)
{printf("%d ",a[i]);}
return 0;
}
void reverse(int a[],int size)
{
int i,k;
i=0;k=size-1;
while(i<=k)
{
int item;
item=a[i];
a[i]=a[k];
a[k]=item;
i++;k--;
}
}
4-10 数组排序
给定一个长度为n的数组a以及两个整数 l 和 r,请你编写一个函数,void sort(int a[], int l, int r),将a[l] ~ a[r]从小到大排序。
输出排好序的数组a。
输入格式:
第一行包含三个整数n,l,r。0≤l≤r<n≤1000
第二行包含n个整数,表示数组a。
输出格式:
共一行,包含n个整数,表示排序完成后的数组a。
输入样例:
5 2 4
4 5 1 3 2
输出样例:
4 5 1 2 3
#include<stdio.h>
void sort(int a[],int l,int r);
int main(void)
{
int n,l,r,i;
scanf("%d%d%d",&n,&l,&r);
int a[n];
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
sort(a,l,r);
for(i=0;i<n;i++)
{
printf("%d ",a[i]);
}
return 0;
}
void sort(int a[],int l,int r)
{
int i,j,item;
for(i=l;i<r;i++)
{
for(j=i;j<r;j++)
{
if(a[j]>a[j+1])
{
item=a[j];
a[j]=a[j+1];
a[j+1]=item;
}
}
}
}
4-11 从1到n之间所有偶数的阶乘值
已知求阶乘的函数如下,利用这个函数,编程计算并输出1到n之间所有偶数的阶乘值。
其中n由用户从键盘输入。
double Fact(int n)
{
int i;
double result = 1;
for (i=2; i<=n; i++)
result *= i;
return result;
}
输入格式:
用户从键盘输入正整数n的值。
输出格式:
按输出样例的形式输出计算的结果。
输入样例:
9
输出样例:
2! = 2
4! = 24
6! = 720
8! = 40320
#include<stdio.h>
double Fact(int n);
int main(void)
{
int n,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
if(i%2==0)
printf("%d! = %.0f\n",i,Fact(i));
}
return 0;
}
double Fact(int n)
{
int i;
double result = 1;
for (i=2; i<=n; i++)
result *= i;
return result;
}
4-12 斐波那契数列
编写计算斐波那契(Fibonacci)数列的第n项函数fib(n)(n < 40)。
数列描述:
f1=f2==1;
fn=fn-1+fn-2(n>=3)。
输入格式:
输入整数 n 的值(0 < n < 40)。
输出格式:
输出fib(n)的值。
输入样例:
7
输出样例:
13
#include<stdio.h>
int fib(int n);
int main(void)
{
int n;
scanf("%d",&n);
printf("%d",fib(n));
return 0;
}
int fib(int n)
{
int result;
if(n==1||n==2)
result=1;
else if(n>=3) result=fib(n-1)+fib(n-2);
return result;
}
标签:输出,语言,int,函数,样例,整数,void,输入,入门
From: https://blog.csdn.net/2301_80165810/article/details/143577148