C语⾔:循环函数部分的简单编程题
循环函数部分的简单编程题
⼤概是刚开始学,所以有的同学对编程题⽐较发憷,其实,这些题都⽐较简单,所以,我会直接给出题和解题代码(其中有⼀部分题是来源于⽹上的)。如果有拓展要求的话,我会直接给出最终代码,可以在此基础上修改,然后得到基本题的代码。
编程1:
求组合数C(n,m)
即:求从给定个数的n个元素中取出m个元素的⽅法数。
要求:
(1)利⽤循环
(2)n,m的值要求从键盘输⼊
(3)输出格式美观合理。
拓展要求:
(1)⽤函数实现给定⼀组n,m的值,求出组合数。
(2)⽤函数实现,给定多组n,m的值(组数由⾃⼰决定,由键盘输⼊),求出组合数。
再拓展:
⽤函数实现,不输⼊参与运算的组数,⽽是从键盘输⼊字符,进⾏判断,来决定停⽌程序。
注意:
组合数计算公式:C(n,m)=P(n,m)/P(m,m) =n!/m!(n-m)!
代码如下:
#include<stdio.h>
int factorial(int n){//求阶乘
int result=1;
for(int i=1; i<=n; i++){
result*=i;
}
return result;
}
int Combination(int n,int m){//求组合数
int result=factorial(n)/(factorial(m)*factorial(n-m));
return result;
}
int main(){
int n,m,flag;
/
/n为下标,m为上标,下⾯相同
do{
printf("请输⼊组合数的n,m:\n");
scanf("%d%d",&n,&m);
printf("所求组合数为:%d\n",Combination(n,m));
printf("如果需要继续计算,请输⼊1:\n");
scanf("%d",&flag);
}while(flag==1);
return0;
}
运⾏结果:
编程2:
编程:设计⼀个模拟计算器,从键盘输⼊两个数(整数),再输⼊算术运算符,求其计算结果。要求:运算符包括:+、-、*、/(运算结果为浮点数——单精度和双精度均可)、%即可。
注意:
注意输出格式的美观和合理性。(尤其是负数参与运算的时候)
要求:
(1)输出格式为:数1 运算符 数2 = 值。
(2)从键盘输⼊要参与运算的组数,然后分别进⾏计算,再输出结果。
拓展:
不输⼊参与运算的组数,⽽是从键盘输⼊某个特定字符,来决定停⽌程序。
代码如下:
#include<stdio.h>
void Calculation();
int main(){
Calculation();
return0;
}
void Calculation(){
int val1,val2;
char ch;
int flag;
do{
printf("请输⼊您的算式:");
scanf("%d%c%d",&val1,&ch,&val2);
switch(ch){
case'+':
printf("%d+%d=%d\n",val1,val2,val1+val2);
break;
case'-':
printf("%d-%d=%d\n",val1,val2,val1-val2);
break;
case'*':
printf("%d*%d=%d\n",val1,val2,val1*val2);
break;
case'/':
//强制类型转化
printf("%d/%d=%f\n",val1,val2,(float)val1/val2);
break;
case'%':
printf("%d%%%d=%d\n",val1,val2,val1%val2);
break;
default:
printf("您的输出超出了我的权限,请重新输⼊\n");
}
printf("您是否还要继续运算,如果是,请输⼊1,否则,程序退出!\n"); scanf("%d",&flag);
if(flag!=1)break;
}while(flag==1);
简单好玩的编程代码复制}
运⾏结果:
编程3:
利⽤所学知识,按照要求输出下⾯的图形。
要求:利⽤函数实现。
拓展:实现菱形的图形输出。
代码如下:
#include<stdio.h>
int main(){
int rows;//菱形上三⾓⾏数
scanf("%d",&rows);
//上三⾓形
for(int i=0; i<rows; i++){
for(int j=0; j<rows-i-1; j++){
printf(" ");
}
for(int k=0; k<2*i+1; k++){
printf("*");
}
printf("\n");
}
//下三⾓形
for(int i=0; i<rows-1; i++){
for(int j=0; j<i+1; j++){
printf(" ");
}
for(int k=0; k<2*(rows-i-1)-1; k++){
printf("*");
}
printf("\n");
}
return0;
}
运⾏结果:
编程4:
将⼀个数组倒序输出。
提⽰:循环可以帮助你更快的完成编程。拓展:⽤函数的形式实现。
注意:数组的传参形式。
附加题:选出数组中的最⼤值和最⼩值,并输出。
代码如下:
#include<stdio.h>
#define N5//宏定义
void array(int arr[],int n);
int main(){
int arr[N];
printf("请输⼊数组元素:\n");
for(int i=0; i<N; i++){
scanf("%d",&arr[i]);
}
array(arr,N);
return0;
}
void array(int arr[],int n){
printf("该数组倒序输出的结果是:\n");
for(int i=n-1; i>=0; i--){
printf("%d\t",arr[i]);
}
int min=arr[0],max=arr[0];
for(int i=1; i<n; i++){
if(min>arr[i]) min=arr[i];
if(max<arr[i]) max=arr[i];
}
printf("\n该数组的最⼤最⼩值如下:\nmax:%d\nmin:%d",max,min); }
运⾏结果:
编程5:
统计四位整数中⼗位数字出现的次数。
例如-2125中,2出现了2次,则该函数应该返回2。
拓展:
使⽤函数实现
简单题
附加题(⼝述):
(1)分析do-while 和 while的区别。
(2)while循环和for循环的转化。
代码如下:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论