A. C语言函数编程实现计算10个数的最大值,要求如下:
#include<stdio.h>
#include<conio.h>
voidarray_input(intarray[],intn);
intmax(intarray[],intn);
intmain(void){
intarray[10];
printf("请输入10个数据:");
array_input(array,10);
printf("10个元素最大值:%d ",max(array,10));
getch();/*屏幕暂留*/
return0;
}
/*输入数组*/
voidarray_input(intarray[],intn){
inti;
for(i=0;i<n;i++)
scanf("%d",&array[i]);
putchar(' ');
}
/*计算数组最大值*/
intmax(intarray[],intn){
inti;
intmax=array[0];
for(i=0;i<n;i++){
if(array[i]>max)
max=array[i];
}
returnmax;
}
B. 从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换它们在数组中的位置
这应该是C++的代码,我个人觉得你写的很混乱,按题目所要求的第一个函数为什么要后面两个参数呢,还有交换函数以及全篇用太多的指针我觉得没有必要,交换函数那里输入是数组类型拿一个int类型去接得到的是数组的第一个元素。我下面给你一个实现的代码参考:
#include<iostream>
using namespace std;
void FindMinMaxAndSwap(int*& nums){
int minID=-1,minValue=nums[0];
int maxID=-1,maxValue=nums[0];
for(int i=0;i<10;i++){
if(nums[i]>=maxValue){
maxValue=nums[i];
maxID=i;
}
if(nums[i]<=minValue){
minValue=nums[i];
minID=i;
}
}
int temp=nums[minID];
nums[minID]=nums[maxID];
nums[maxID]=temp;
}
int main(){
int* a=new int(10);
for(int i=0;i<10;i++)
cin >> a[i];
for(int i=0;i<10;i++)
cout << a[i] << " ";
cout << endl;//打印数组显示一下
FindMinMaxAndSwap(a);
for(int i=0;i<10;i++)
cout << a[i] << " ";
cout << endl;
return 0;
}
运行结果如下,亲测有效
C. 用函数编程实现计算两个正整数的最小公倍数(Least Common Multiple,LCM)的函数,在主函数中调用该函数计
int LCM(int a,int b)
{
int c;
if(b>a)
{
c=a;
a=b;
b=c;
}
for(int i=1;;i++)
{
c=i*a;
if(c%b==0)
{
break;
}
}
return c;
}
基础思想大概是这样,还有很大的修改空间。因为习惯用for写,所以写成这样,当然用while也可以。。
D. 利用自定义函数编程实现计算一个三位数各位上的数字之积
#include<stdio.h>
#include<stdlib.h>
int main()
{
int number=456,a,b,c;
a=number/100;
b=(number%100)/10;
c=number%10;
printf("%d\n",a*b*c);
system("pause");
return 0;
}
如果写成函数就是:
int f(int x)
{
int a,b,c;
a=x/100;
b=(x%100)/10;
c=x%10;
return a*b*c;
}
E. 编写函数实现简易计算器的功能(C语言)
#include
void
main()
{
float
a,b;
char
d;
do
{
printf("Please
enter
the
two
Numbers,
separated
by
Spaces:\n");
scanf("%f
%f",&a,&b);
printf("Please
select
operation
way:
(-,*,/,^,s,!)\n");
scanf("%s",&d);
switch(d)
{
case'+':
printf("a+b=%f\n",a+b);
break;
case'-':
printf("a-b=%f\n",a-b);
break;
case'*':
printf("a*b=%f\n",a*b);
break;
case'/':
printf("a/b=%f\n",a/b);
break;
default:
printf("input
error\n");
}
printf("Do
you
want
to
continue(Y/N
or
y/n)");
fflush(stdin);
}
while(toupper(getchar())=='Y');
}
可以运行,不知道满不满足你的要求,你自己可以试试
F. 如何用C语言编写程序:调用函数,计算 n!/m!(n-m)!
参考代码:
#include <stdio.h>
double fact(int num)//定义一个求阶乘函数
{
double result = 1.0;
for (int i = 2; i <= num; i++)
{
result *= i;
}
return result;//返回阶乘结果
}
int main()
{
int m, n;
double result;
scanf("%d %d", &m, &n);
result = fact(n) / (fact(m) * fact(n-m));
printf("result = %.0f\n", result);
return 0;
}
G. 3. 编写函数实现任意两个整数求和,在主函数中输出计算结果
#include<stdio.h>
int sum(int a,int b)
{return a+b;
}
int main(void)
{ int a,b;
scanf("%d%d",&a,&b);
printf("%d ", sum(a,b));
return 0;
}
===============================
#include<stdio.h>
#include<math.h>
double fun(double x)
{return x*x-6*x+2;
}
int main()
{ double a;
scanf("%lf",&a);
printf("%f ", fun(cos(a)));
return 0;
}
H. 输入m*n阶矩阵A和B,用函数编程实现两个函数相加和相乘
输入m*n阶矩阵A和B,用C语言编程实现两个函数相加和相乘:
一、矩阵相乘。程序中先初始化矩阵,然后判断第一个矩阵的列数和第二个矩阵的行数是否相等,如果不相等则直接提示错误后退出程序。相等的话则利用公式计算乘积,结果赋给matrix二维数组。最后用for循环打印出结果验证。
#include<stdio.h>
#include<stdlib.h>
#define M 100
int main(void)
{
int i,j,k,matrix1[M][M],matrix2[M][M],row1,col1,row2,col2,matrix[M][M];
printf("输入第一个矩阵的行数和列数:");
scanf("%d%d",&row1,&col1);
printf("输入第一个矩阵: ");
for(i=0;i<row1;i++){
for(j=0;j<col1;j++){
scanf("%d",&matrix1[i][j]);
}
}
printf("输入第二个矩阵的行数和列数:");
scanf("%d%d",&row2,&col2);
printf("输入第二个矩阵: ");
for(i=0;i<row2;i++){
for(j=0;j<col2;j++){
scanf("%d",&matrix2[i][j]);
}}
for(i=0;i<row1;i++){
for(j=0;j<col2;j++){
matrix[i][j]=0;
} }
if(col1!=row2){
fprintf(stderr,"enput error!");
exit(EXIT_FAILURE);
}
printf("The result: ");
for(i=0;i<row1;i++){
for(j=0;j<col2;j++){
for(k=0;k<col1;k++){
matrix[i][j]=matrix[i][j]+matrix1[i][k]*matrix2[k][j];
} } }
for(i=0;i<row1;i++){
for(j=0;j<col2;j++){
printf("%d ",matrix[i][j]); }
printf(" "); }
return 0;}
二、矩阵相加:
#include<stdio.h>
#define M 20
#define N 20
float A[M][N];
float B[M][N];
float C[M][N];
int i,j,m,n,p,q;
float y=1.0;
void main()
{
scanf("%d,%d",&i,&j);
printf("请输入矩阵B的行数和列数(用逗号隔开):");
scanf("%d,%d",&m,&n);
if(i!=m||j!=n)
printf("***对不起,您输入的两个矩阵不能相加,请重试.*** ");
else printf("请输入矩阵A: ");
for(p=0;p<i;p++)
for(q=0;q<j;q++)
scanf("%f",&A[p][q]);
printf("输出矩阵A: ");
for(p=0;p<i;p++)
for(q=0;q<j;q++)
{
printf("%10.2f",A[p][q]);
if((q+1)%j==0)
printf(" ");
}
printf("请输入矩阵B: ");
for(p=0;p<i;p++)
for(q=0;q<j;q++)
scanf("%f",&B[p][q]);
printf("输出矩阵B: ");
for(p=0;p<i;p++)
for(q=0;q<j;q++)
{
printf("%10.2f",B[p][q]);
if((q+1)%j==0)
printf(" ");
}
printf("矩阵A+矩阵B为: "); //计算两个矩阵相加
for(p=0;p<i;p++)
for(q=0;q<j;q++)
C[p][q]=A[p][q]+B[p][q];
for(p=0;p<i;p++)
for(q=0;q<j;q++)
{
printf("%10.2f",C[p][q]);
if((q+1)%j==0)
printf(" ");
}
};
I. 使用c语言编程,用函数实现一个计算器,在主函数中调用函数,包括加减乘除,乘方,绝对值和sin函数。
#include<stdio.h>
#include<stdlib.h>
double jia(double a,double b)
{
return a+b;
}
double jian(double a,double b)
{
return a-b;
}
double cheng(double a,double b)
{
return a*b;
}
double chu(double a,double b)
{
return a/b;
}
double juei(double a)
{
return a>0 ? a : -a;
}
double chengfang(double a,double b)
{
return pow(a,b);
}
double sinx(double a)
{
return sin(a);
}
int main()
{
int m;
double a,b;
while(1)
{
printf("请输入第一个操作数:");
scanf("%lf",&a);
printf("0、退出\n1、加\n2、减\n3、乘\n4、除\n5、绝对值\n6、乘方\n7sin、\n请选择一个:");
scanf("%d",&m);
if(1==m || 2==m || 3==m || 4==m || 6==m)
{
printf("请输入第二个操作数:");
scanf("%lf",&b);
}
switch(m)
{
case 0:
exit(0);
break;
case 1:
printf("%lf+%lf=%lf\n",a,b,jia(a,b));
break;
case 2:
printf("%lf-%lf=%lf\n",a,b,jian(a,b));
break;
case 3:
printf("%lf*%lf=%lf\n",a,b,cheng(a,b));
break;
case 4:
if(0.0==b)
{
printf("除数不能为0。\n");
}
else
{
printf("%lf/%lf=%lf\n",a,b,chu(a,b));
}
break;
case 5:
printf("|%lf|=%lf\n",a,juei(a));
break;
case 6:
printf("%lf的%lf方=%lf\n",a,b,chengfang(a,b));
break;
case 7:
printf("sin(%lf)=%lf\n",a,sinx(a));
break;
default:
printf("无法处理的命令。\n");
break;
}
}
system("PAUSE");
return EXIT_SUCCESS;
}
J. 从键盘输入10个整数,用函数编程实现计算其最大值和最小值,并互换他们
#include"stdio.h"voidmain(){inta[10];inti;intmax,min;for(i=0;i<10;i++)scanf("%d",&a[i]);max=min=a[0];for(i=1;i<10;i++){if(maxa[i])min=a[i];}printf("max=%d,min=%d\n",max,min);}