这个c语言题目有点难,求大佬帮忙

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-08-01
求大佬帮忙告诉一下这个c语言题的过程 小白一枚

这个程序的运行结果可以有两种方法得出,一是模拟运行。第二种办法是看懂函数fun的功能。
这个函数的功能是把数组中从下标n1开始到n2为止的这一段数组元素进行逆置存放。然后就按着这个方法对整个数组进行三次的函数调用。所以最后的结果,他实际是把A数组中下标从0到3的元素移到数组的后段,应该选择答案C。

这个题目通过人工计算比较方便。首先确定个位数的个数,个位数,因为必须要是奇数,所以有3种可能,再看千位数,因为不可以是零,所以有4种可能。剩下来的两位数从四个数字中产生,所以有4×3种可能。
所以总数就是3×3×4×3=108种。
如果一定要用C语言编写程序的话,那就直接写一个输出语句,输出108就可以了。

您好,很高兴回答您的问题。
您说的这个问题,难点就在正确使用/和%这两个符号。c语言中%只能使用在两个整数之间,且得到的结果也只能是整数,表示的是将前者除以后者后得到的余数,所以叫取余符号。/表示除号,但是用在两个整数之间时,得到的结果也只能是整数。比如1/2的结果是0,1%2的结果是1。
根据以上说明,千位和各位应该好提取,分别除以1000和取余10即可得到,主要就是百位和十位,给您一个思路:象这种中间的数字,想办法把它变成旁边的数,比如3721,取余1000后就变成了721,再提取7就可以用前面我讲的方法了,十位上的2也是用类似的方法哦。
以上是我对您提出问题的解答,希望能帮助到您,不当之处,敬请批评指正。

你这是刚开始学c吧,我刚开始学也是不懂的,楼上有现有的答案,其实网上也一大把,
我就不重复了,我来说说怎么解决这个问题
你不会写这个,主要是你对/和%这两个运算符不熟悉,你可以用简单的printf来测试/和%有什么功能,这样你就能很直观的发现他们的功能,
接下来就没什么难度了,如果你只是复制粘贴一遍答案,下次你还是不会

这有啥难?
模除10得个位
mod100得21/10强制转换得10位
以此类推.
不过转字符串循环取出更简单.
编程就是要把麻烦问题简单化!

int a,b,c,d;
a=3721/1%10 //取个位
b=3721/10%10 //取十位
c=3721/100%10 //取百位
d=3721/1000%10 //取千位

不知道不知道不知道不知道不知道不知道不知道不知道不知道不知

  • C语言题目,求大佬解答
    答:被2整除的数有7个,被5整除的数有1个,所以count为8.数组被赋了10个数据,所以K数组的第11个数为0,跳出循环,对应K[10],所以i为10.答案B
  • C语言求助,哪位大佬帮我看看这道题?一直搞不清楚
    答:知道答主 回答量:133 采纳率:0% 帮助的人:5.2万 我也去答题访问个人页 关注 展开全部 这是一道C语言的增删改查的链表操作操作的典型题目,同时考察对结构体的理解程度。最简单的就是使用顺序链表做。 已赞过 已踩过< 你对这个回答的评价是? 评论 收起 ...
  • c语言程序题求解,有点难
    答:初始 i=1 k=3 循环 check j(1)<=a*a(25)=1loop 1:i=1 k=3, m[1][3]=1check j 1% a 5 = 1k=4i--, i=0i=0, set i=a=5j++, j=2check j(2)<=a*a(25)=1loop 2:i=5 k=4, m[5][4]=2check j 2% a 5 = 2k=5i--, i=4j++, j=3check j(3)<=a*...
  • c语言的编程题目,求大佬帮忙看看
    答:Include<stdio.h> int main(){ char str[255]={'\0'};int i, j, k,n;int m = 0;scanf("%d", &n);for(i =2;i<=n; i++){ k = 0;m = 0;for(j=1;j<=i-1;j++)if(i%j==0){ k += j;sprintf(str, m==0 ? "%s%d\0" : "%s+%d\0", str,...
  • C语言程序题,求完整代码,请求大佬帮忙?
    答:如图中代码。
  • 有一道c语言的题目,我实在想不出来,求大佬帮忙
    答:include<stdio.h>main(){ int temp,i,number; char str[200]; do{ for(temp=0;temp<200;temp++) { str[temp] = '\0'; } scanf("%s",&str); if(str[0] != '#') { if(str[0] >= '0' && str[0] <= '9') { number = 0; ...
  • 求大佬帮帮忙看看这个C语言题目~
    答:使用cout对象输出地址时是16进制的,所以194是16进制的194,9个int单位以16进制计数就是24 (10进制36,每个int是4个字节). 194+24就是1b8.若要以10进制输出地址可以先把地址转换为整数 cout<<(size_t)(p+9)<<endl; //size_t是个64位无符号整数宏 ...
  • 求大佬解决C语言问题
    答:题目要求用指针函数,既返回值为指针类型的函数。在主函数接收返回值并输出打印。从输入的学生中找出有不及格的学生,并输出其不及格的课目成绩。(在打印所有学生的同时就筛选出存在不及格的学生,可减少循环次数,本题只有3个学生,假设更多的话)。下面是代码:include <stdio.h> include <malloc.h> ...
  • 一个C语言/C++问题,求大佬解答?
    答:思路:1. 以空格、标点符号(如逗号、句号等)作为分隔符,将文章分解成单个单词。2. 将每个单词统一转换为小写。3. 统计单词的个数,并用map记录每个单词出现的次数。4. 将map中的记录排序,输出。示例代码:include <iostream>#include <fstream>#include <string>#include #include <vector>#includ...
  • 一个C语言/C++问题,求大佬解答?
    答:原程序思路如下:打开输入文件和输出文件。循环读取输入文件中的每一个字节。将每一个字节的8位逆转。将逆转后的字节写入输出文件。关闭输入文件和输出文件。对于大文件处理,上述程序在每个字节上进行逆转,效率较低。为了优化程序,可以采用缓存的方式,批量读取数据,然后批量逆转后输出。优化思路如下:打开...