㈠ 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;