㈠ c语言编程题,计算平均数
#include "stdio.h"
int main()
{
int a,b,c,sum;
float average;
scanf("%d%d%d",&a,&b,&c);
sum=a+b+c;
average = (float)sum/3;
printf("%d
",sum);
printf("%.2f
",average);
return 0;
}
㈡ C语言编程题 计算Cmn
Cmn是一个数学上的公式,其中m是其的下角标,n是其的上角标。计算方法是
m×(m-1)×(m-2)×……共有n项的乘积,然后除以n的阶乘
用C语言做这个计算的编程,步骤如下:
1、首先需要读取m和n的值,然后在读取的同时进行判断是否满足m>0、n>0、m>=n的条件,如果不满足要求重新输入。
2、然后可以构建两个函数fun1和fun2,其中fun1的参数有两个m和n,利用循环控制求出m×(m-1)×(m-2)×······;fun2的参数只有一个,用来求n的阶乘。
3、返回值,有两种方法:(1)fun1和fun2返回整型值到主函数,强制转换成float型;(2)直接在fun1和fun2函数中将返回值强制转换成float型,然后返回到主函数进行计算。
4、在主函数中计算两个返回值的差,最后输出。
具体代码如下:(精度不够请把 int 换成 long long)
#include<stdio.h>
intfun1(intm,intn){
inti,result;
for(result=m,i=1;i<n;i++){
result*=--m;
}
returnresult;
}
intfun2(intn){
intresult;
for(result=n;n>2;){
result*=--n;
}
returnresult;
}
intmain(){
intm,n,result,x,y;
printf("请输入大于零的整数m:");
while(1){
scanf("%d",&m);
if(m>0)
break;
printf(" 输入有误,请重新输入大于零的整数m:");
}
printf(" 请输入大于零且小于等于%d的整数n:",m);
while(1){
scanf("%d",&n);
if(n>0&&n<=m)
break;
printf(" 输入有误,请重新输入大于零且小于等于%d的整数n:",m);
}
x=fun1(m,n);
y=fun2(n);
result=x/y;
printf(" 结果是:%d ",result);
return0;
}
㈢ c语言编程题:分别用冒泡法和选择法对输入的10个整数由大到小排序
#include<stdio.h>
#defineN10
//冒泡排序(升序)
voidbubble_sort(inta[],intn)
{
inti,j;//j表示趟数,i表示第j趟两两比较的次数
inttmp;//临时变量
for(j=0;j<n-1;j++)
for(i=0;i<n-1-j;i++)
{
if(a[i]>a[i+1])
{
tmp=a[i];
a[i]=a[i+1];
a[i+1]=tmp;
}
}
}
//选择排序算法,按从小到大顺序
voidselect_sort(int*array,intn)
{
inti,j,k;
inttmp;
for(i=0;i<n-1;i++)
{
k=i;//开始一趟选择排序,假定第i个元素是后面n-i+1个未排序的元素中最小的元素
for(j=i+1;j<n;j++)
{
if(array[k]>array[j])//如果发现比当前最小元素还小的元素,则更新记录最小元素的下标k
k=j;
}
//如果最小元素的下标不是后面n-i+1的未排序序列的第一个元素,则需要交换第i个元素和后面找到的最小元素的位置
if(k!=i)
{
tmp=array[k];
array[k]=array[i];
array[i]=tmp;
}
}
}
//输入数组元素函数
voidinputData(int*a,intn)
{
inti;
printf("输入数组元素:
");
for(i=0;i<n;i++)
scanf("%d",&a[i]);
}
//输出数组元素函数
voidoutputData(int*a,intn)
{
inti;
printf("输出数组元素:
");
for(i=0;i<n;i++)
printf("%d",a[i]);
printf("
");
}
intmain()
{
intarr[N]={0};
inputData(arr,N);
printf("使用冒泡排序算法...
");
bubble_sort(arr,N);//调用冒泡排序函数
outputData(arr,N);
inputData(arr,N);
printf("使用选择排序算法...
");
select_sort(arr,N);//调用选择排序函数
outputData(arr,N);
return0;
}
㈣ 咨询3道C语言编程题解题代码,和具体算法
第二题:char* Mystrcpy(char* _p1,char* _p2){if(strlen(_p1)<strlen(_p2)){printf("error!");}memset(_p1,'\0',strlen(_p1)+1);for(int i=0;i<strlen(_p2);i++){_p1[i]=_p2[i];}return _p1;}
㈤ C语言编程题:输入4个整数,要求按由小到大顺序输出怎么编啊
利用函数的模块化设计。
1、完成整体函数格局,输入、排序、输出。
执行结果同上。
㈥ 收集各类贪心算法(C语言编程)经典题目
举个例子,假如你买东西,老板需要找给你99分钱,他有上面面值分别为25分,10分,5分,1分的硬币(都是假如,不符合实际),他得找你3个25分,2个10分的,4个1分的才为最佳方案!
用贪心算法编写程序实现!
main()
{
int
i,a[5],b[4],c[4];
/*
define
the
type
of
the
money*/
a[1]=25;
a[2]=10;
a[3]=5;
a[4]=1;
printf("please
input
you
money
(fen):\n");
scanf("%d",&b[0]);
for
(i=1;i<=4;i++)
{
b[i]=b[i-1]%a[i];
/*take
n
25
off
and
money
left*/
c[i]=(b[i-1]-b[i])/a[i];
/*
n
*/
printf("%d
is
%d\n",a[i],c[i]);
}
getch();
}
㈦ c语言编程题 计算并输出3到n之间所有素数的平方根之和
#include<stdio.h>
#include<math.h>
int isprime(intn)
{for(inti=2;i*i<=n;i++)
if(n%i==0)return 0;
return n>1;
}
int main()
{int n,i;
double s=0;
scanf("%d",&n);
for(i=3;i<=n;i+=2)
if(isprime(i))s+=sqrt(i);
printf("%.3lf ",s);
return 0;
}
输出结果
(7)c语言算法编程题扩展阅读
求3-N间所有素数的平方根之和
#include<math.h>
#include<stdio.h>
doubl efun(intn)
{
doubles=0.0;
inti,j,flag=1;
for(i=3;i<=n;i++)
{
for(j=2;j<i;j++)
{
if((i%j==0)&&(j>=(i+1)))
{
flag=0;
break;
}
}
if(flag==1)
s+=sqrt(i);
}
returns;