请教一道C语言编程题

2024-05-15

1. 请教一道C语言编程题

给你个算法吧 
分别定义下C的个位m十位n百位p千位q
m=b%10  p=b/10
n=a%10  q=a/10
c=q*1000+m*100+q*10+p
前提 你所用的ab为俩位数  
比如我输入一个数98
我要取它的十位数,也就是9
那么我就用98/10这条命令,其中“/”的意思是整除,也就是除了已后取整数部分,比如98除以10应该是9。8,但是取整数部分后就是9
同理要取个们数,也就是8
我们就用98%10这条命令,其中“%”的意思是取余的意思,就是说除完之后取余数,而不取整数部分,比如98除以10应该是9。8,但是取余数部分后就是8
给你举个例子
#include
void main()
{
int i=98;
printf("%d     %d",i/10,i%10);
}
给你扩展下,如果是个三位数,比如987,要取百位,十位,个位,分别是987/100,(987%100)/10,987%10

请教一道C语言编程题

2. 可以讲解一下这两个c语言的编程题吗

第一个程序就是一个数学题的计算。这里写的程序是使用了for循环,在原有初值1的基础上乘以10次1.1。计算完成以后要减去原值,再乘以100,这样就算成了百分比。最后要注意输出百分号在C语言当中,要使用两个连续的百分号。下面是程序的代码和运行的结果。#include int main(){ float p=1;int i;for(i=1;i<11;i++)p*=1.1;printf("10年后比现在增长%.2f%%",(p-1)*100);return 0;}

鸡兔共笼问题也是根据数学知识先找出计算兔子的只数的计算公式。算出兔子的次数后再算鸡的只数,下面是程序的代码和运行结果。#include int main(){ int h=16,f=40,c,r;r=(f-2*h)/2;c=h-r;printf("鸡%d只,兔子%d只\n",c,r);return 0;}

3. 回答一下编程题,c语言的

1 D, AB的错误在于将会缺少\0,不能算做完整的字符串。
2 C,C的结果是一个指针,不是引用。
3 D,s不能执行++操作。
4 C,b不能被赋值,当然,也不能执行++操作,与3题的意思类似。

回答一下编程题,c语言的

4. C语言编程题

long fun(int k)
{
if(i<2)
return 1L;
return k*fun(k-1);
}
或:
#include "stdio.h"
main()
{
double h,c;
//printf("Input h\n");
scanf("%lf",&h);
c=5.0/9*(h-32);
printf("c=%lf",c);
}

扩展资料:
C语言包含的各种控制语句仅有9种,关键字也只有32 个,程序的编写要求不严格且以小写字母为主,对许多不必要的部分进行了精简。实际上,语句构成与硬件有关联的较少,且C语言本身不提供与硬件相关的输入输出、文件管理等功能,如需此类功能,需要通过配合编译系统所支持的各类库进行编程,故c语言拥有非常简洁的编译系统。
参考资料来源:百度百科-c语言

5. C语言编程题

两种思路,一种设计过程比较简单,就是直接用程序模拟所有可能的路径,把合题意的走法全部计数。这种算法的时间复杂度大约在O(2^N)左右,比较慢。另一种是建立一个数学模型,采用组合数的思想解这个问题,这样设计出程序只是一个数学计算过程,组合数计算最快的算法是O(N),在加上求和,算法时间复杂度为O(N^2)左右。
一种简单的递归模拟方法:
void decision::make_decision(int step, int restlevel) { //走法:走一步或两步    if(restlevel == 0){                                 //路径走完        if(step % 2 == 0){                              //是偶数步            decision_count ++;                          //可作为一种走法        }    }    else {                                              //路径未走完        step ++;        for (int i = 0 ; i  i ){                make_decision(step, restlevel - i - 1); //下一步走法            }        }    }}该问题的数学解法是:由于需要走偶数步,而楼梯数是奇数,那么必然有奇数步走了两个台阶。假设2n-1步走两个台阶,则一共走了39-2i+1步,最多有floor(39/2)=19步(此时n=10)是两步。面就是简单组合问题。可以得出 
Count = Σ(i=1...10)C(39-2i+1, 2i-1)
Σ为求和符号,C(n,k)为组合数符号。

C语言编程题

6. C语言编程题,如下图,有谁知道?

题目没有问题
 

7. 一道C语言编程题求解

#include
void main() { int a,n,s,t,i;
scanf("%d%d",&a,&n); s=0; t=0;
for ( i=0;i<n;i++ ) {
t*=10; t+=a; s-=t;
}
s+=t; s+=t; printf("%d\n",s);
}
首先这是一个累和的题目,完成方法就是循环n次,向求和变量s上边加n项,一般循环变量i
其次,观察每项取值之间的关系,这题是每项都是前一项乘以10再加a得到
这题也没有项顺序关系,每项都是减法,因此可以简化成求累减
每项用一个变量t来算,一开始初值为0,当前项就是t乘以10然后加a,于是第1项为a,第2项为a*10+a=aa,...,循环n次得到最大那个数
具体到程序,为简单起见,求累减,得到的是-aaa...aaa-...-aaa-aa-a,因此加上两次最大值得到aaa...aaa-...-aaa-aa-a的值输出.
这种多项式求和,一般是要分析每项与前项的关系,或者与循环变量取值之间的关系,每项的符号如果需要的话可以单用一个变量来控制,比较关键的是各变量的初值要赋值正确.

一道C语言编程题求解

8. C语言编程题

根据题意:题目1:函数参数是除数(这里传值8),返回满足条件的数字和。题目2:函数参数是要找的项目数(这里传值10),返回对应项的值。

#include
#define MIN 50
#define MAX 1000
int fa(int a);//对应题目1的函数,参数:要除的数,返回可以被整除的数之和
int getByIndex(int n);//对应题目2,返回数列第n项,错误返回-1
int main()
{
printf("1、%d~%d之间能被%d整除的数字之和为:%d\n",MIN,MAX,8,fa(8));
printf("2、数列头三个数为4,5,6,以后的每个数为前三数和,求此数列第%d项:%d\n",10,getByIndex(10));
return 0;
}
int fa(int a)//对应题目1的函数,参数:要除的数,返回可以被整除的数之和
{
int i,sum=0;
for(i=MIN;i<=MAX;i++)
if(i%a==0)
sum+=i;
return sum;
}
int getByIndex(int n)//对应题目2,返回数列第n项,错误返回-1
{
if(n<1)
return -1;
int i,nums[n];
nums[0]=4,nums[1]=5,nums[2]=6;
for(i=3;i<n;i++)
nums[i]=nums[i-1]+nums[i-2]+nums[i-3];
return nums[n-1];
}