问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

c语言:有哪位大侠可以帮我解释一下下面这道题目???

发布网友 发布时间:2023-06-28 16:50

我来回答

4个回答

热心网友 时间:2024-09-03 08:32

Flag是 被调函数prime里面定义的一个局部变量flag变量 下面的return(flag)这行里面的flag和前面定义的flag是一样的、、、flag也可以自己随意修改、、、
下面分析下这个程序具体的步骤
#include <stdio.h> //第一行、调取头文件stdio.h
int main() //表示一下内容为主函数
{int prime(int); //这个用途是前置函数声明、因为被调哈数prime是在主函数后面的所以需要函数声明
printf("input an integer:"); //这个作为人机交互、在执行之后输出input an integer具体自己翻译
scanf("%d",&n); //这里作为n变量的取值、功能是手动键入n变量的大小
if (prime(n)) //if是如果、、()里面的prime(n)是掉用被调函数prime因为前面有函数声明所以可以调用prime函数、n为实参、将n的值发送给被调函数的形参进行运算、如果返回值为真(1)则运行fi里面的东西,如果为假(0)则运行else里面的东西。运行顺序从这里直接跳到后面的int prime(int n)这行往下运算
printf("%d is a prime.\n",n);//这里是将n以10进制输出 %d是输出控制符表示10禁止 is a prime为非输出控制符、原样输出、
else //否则
printf("%d is not a prime.\n",n); //吧n以10进制输出、后面同上上行
return 0;//return用来终止函数、0表示没有返回值
}
int prime(int n) // 这里为定义被调函数prime int表示被调函数返回值类型为整形prime为函数名称int n表示定义一个形参n
{int flag=1,i;//这里有定义了一个flag的整形变量和一个i变量
for (i=2;i<n/2 && flag==1;i++)//i=2表示i从2开始进行循环、因为1不为素数i<b/2 && flag==1判断&&(并且)两边的表达式是否成立成立则往下执行、i++表示i变量的值每次循环之后+1
if (n%i==0)//如果n对i取余等于0则返回值为0也就是假后面的自己理解吧都很简单、
flag=0;
return(flag);//对主调函数返回flag的值
}
这个程序很多地方编译不太好、
例如被调函数int prime(int n)这行、返回值的类型真假也有专门的真假的数据类型、bool prime(int n) 前面的int main()主调函数一般没有返回值的话括号里面须注明void变成int main(void)

热心网友 时间:2024-09-03 08:32

指出几点错误的地方: 1.j,k要进行初始化,不然会引起错误的 2.*p1=a这是一维数组和指针的赋值方法,二维数组这样不正确 3.g=*(p1+e+i); *(p1+e+i)=*(p1+f+i); *(p1+f+i)=g; 这样行不通 4.printf("\n");c 后边的这个c多余修改后的程序(可以正确运行): #include "stdio.h" #define N 4 void main() { int a[N*N],i,j=0,k=0,*p1=a,b=0,c=0,e,f,g; for(i=0;i<N*N;i++) scanf("%d",p1+i); c=*p1; b=*p1; for(i=1;i<N*N;i++) { if(c<*(p1+i)) { c=*(p1+i); j=i; } } for(i=1;i<N*N;i++) { if(b>*(p1+i)) { b=*(p1+i); k=i; } } e=j/N; f=k/N; if(e!=f) { for(i=0;i<N;i++) { g=*(p1+e*N+i); *(p1+e*N+i)=*(p1+f*N+i); *(p1+f*N+i)=g; } } for(i=0;i<N*N;i++) { printf("%d ",a[i]); if((i+1)%N==0)printf("\n"); } }lanren910822G2!

热心网友 时间:2024-09-03 08:33

判断是不是素数,flag是返回值,0是假 1是真

热心网友 时间:2024-09-03 08:33

这个被调函数是用来判断是否为素数的,i从2到n/2,如果标志位flag为1(假)i就自加。判断n是否能够被i整除,如果能,置flag为0,返回,否则循环。最后返回flag,flag=0,则是素数,反之,不是素数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024年云南292分能考上什么大学? 2024高考多少分能被焦作大学录取 【芍药花茶】芍药花茶的功效与作用 芍药花茶怎样喝 芍药花茶的介绍 芍药花茶的属性和功效 联想拯救者电竞手机Pro评测 植物大战僵尸花园战争有用的激活码发给我,有用我就采纳 亲亲奶爸《亲亲奶爸》歌词 植物大战花园战争激活码只能用一次? 歌词中带有。我的好爸爸。我的好爸爸。儿女怎能舍得让你走,_百度... edge浏览器没声音是怎么回事-edge浏览器没声音解决办法 c语言程序中 题目C语言 给出一个大于或等于3的正整数,判断他是不是个素数 这事素... 菜鸟学习C语言的一道习题求解答 用于描述“N能被I整除”的逻辑表达式? for(i=3;i*i&lt;=n;i+=2) if(!(n%i)) return 0; return 1; } 这个循环不... n%i==0是什么意思,%放在那儿没懂? 徐鹏飞用了哪些方法审讯许云峰 江姐电视剧怎么没有许云峰和蒲志高 住小帮bd工作怎么样 瓜子二手车bd工作怎样 想让姑娘学医,但她害怕解剖,能去学医吗,解剖很可怕吗 想要学医,怎样可以克服上解剖课时的恐惧感呢? 女朋友学临床医学的,对尸体和解剖方面很反胃,我不是学医的么经验啊... 太平宝贝两全保险计划有必要买?可靠吗? 高考报志愿时,想学医,害怕人体解剖,怎么办 怎么提高心理素质,克服面对人体解剖课的恐惧 女儿在大学学医,看到好多人的标本,好怕,怎么鼓励她? 太平人寿鑫喜少儿两全保险(互联网专属)坑不坑?保障时间到几岁?_百度... 怎样通过运动减去腹部赘肉?减腹部赘肉做什么运动? 女人生孩子是消业障吗 生孩子简直就是女性职业道路的 龚俊为什么要接盛势 英国女王碰上梦露,谁的气场会更胜一筹? 鬼知道玛丽莲·梦露是谁! 原来电视上放过一部电影叫《玛丽莲梦露和她的情人》,这部电影在哪个网站... 桂林理工大学机械与控制工程学院什么时侯公布拟录取名单 杜桂林理工大学复试结束啥时出名单 ...大概意思就是永远不要听别人说你自己不美丽&#x22EF;&#x22EF;don&#39;t nev... ...歌。歌词很少大部分在哼,歌词貌似有这几句:I never nev he learned how to get on with others 帮忙翻译一段英文(翻译的好了可以在加分) 推荐国产电影/电视剧/或是有国语配音 dhl从中国寄到格鲁吉亚快递要怎么寄 收费标 奥斯曼帝国为什么不向中国方向进军 波斯,奥斯曼帝国为什么没有侵略中国 奥斯曼帝国有征服中国的野心吗 奥斯曼土耳其帝国崛起后为何要远征欧洲?为何不敢远征亚洲? 古罗马为什么不打中国 明朝中国和奥斯曼帝国打过仗吗 黑瞎子岛自贸区发展潜力怎么样? 中国将来能不能在日本海建设中日俄三国共同海上国际自贸区