下边是一个简单的C语言问题

作者&投稿:只祝 (若有异议请与网页底部的电邮联系)
希望我的回答对你有帮助,可以的话记得采纳哈,先谢谢啦!
首先,说一下break的功能,break是用来终止当前循环,记得,是终止当前整个循环。现在给你分析上面那两个程序:
左边这个,是为了查找出所有(记住,是所有)符合3*x*4*y=100的x,y的值并分别打印出来,所以x,y的所有可能的组合都必须过一遍,因此当x,y的组合不满足条件时,不能用break终止整个for循环(即停止继续查找)
右边这个,情况就不同了。这个程序的功能是查找出3-10之间的素数,从3开始找,3是素数就不用说了,我们谈一下4,因为4不是素数,所以当a=4时,开始分析,b=2时,4%2==0,所以不满足条件,跳过printf语句,然后遇到了break,跳出for循环(因为用了break,所以b=3的情况就被跳过去了,这里说下,break跳出的循环是里面的那个for循环,外面的for循环继续执行),接下来就是a=5的情况了,以此类推...我再罗嗦下吧,里面的for循环是用来判断一个数是不是素数,因此一旦发现不是素数,就可以跳出这个for循环了,比如刚刚说的4已经能被2整除了,就知道它不是素数了,自然也就不需要考虑4能不能被3整除了...所以一旦判断不是素数,用break跳出,继续下一个要判断的数即可。。。。。。。没口水了额
说的蛮清楚了吧,呵呵,懂了的话给分哈,谢拉 ...

目的,不一样,如果你懂break,就很简单,break就是满足条件了,然后跳出本循环。

你从y<25和b<a区别一下!

图1中你是要得到对所有的x<34,y<25且满足3*x+4*y=100的(x,y)对,如果你用了break则y永远也只会等于1
而图2我是不是可以这样理解题意,求3到10中哪些不能被2整除,如果是的就没错,如果不是的就错了
break只是跳出当前循环

你的程序是为了搜索满足条件的数据,因此最好不用break.用了以后,找到一组结果就不再搜索,这样会遗漏结果,你把以下程序运行一下,看看结果:
#include <stdio.h>
void main()
{
int x, y;
int a, b;
for (x=1; x<34; x++)
for (y=1; y<25; y++)
{
if (3*x+4*y == 100)
printf("x=%d\ty=%d\n", x, y);
}
printf("=================\n");

for (x=1; x<34; x++)
for (y=1; y<25; y++)
{
if (3*x+4*y == 100)
{
printf("x=%d\ty=%d\n", x, y);
break;
}
}
printf("=================\n");

for (a=0; a<=10; a++)
for (b=2; b<a; b++)
{
if (a%b!=0)
printf("a=%d\n", a);
break;
}
printf("=================\n");

for (a=0; a<=10; a++)
for (b=2; b<a; b++)
{
if (a%b!=0)
printf("a=%d\n", a);
}
}

50也就是字符'2'的ascii码

下边是一个关于C语言的简单问题:~

a='2'其实你是把字符'2'赋值给a,此时a=50也就是字符'2'的ascii码

a=a+a=a-a*a
不能给表达式赋值,只能给变量赋值,所以是从右往左算。a+=a就是a=a+a,-=类似。
首先a=a-a*a,a就变成-132,接着a=a+a,a就变成-264

若解释合理希望给分,谢谢!

C语言问题,编写一个程序计算矩形的面积和周长
答:1.代码参考:(边长可以是整数也可以是小数;实现乘法的运算符是*)2.代码参考:

几道C语言的题1编写一个程序求满足如下条件的最大的n.条件是1*1+2*2...
答:for(i=0;x<=1000;++i)x+=i*i;printf("This number is which you want:%d",i);getch();for(j=1;j<i;j+=2)a+=j;for(j=2;j<i;j+=2)b+=j;printf("奇数和为%d,偶数和为%d",a,b);getch();} 2) #include"stdio.h"include"conio.h"main(){ int a,b,c;here: scanf(...

如何用c语言编写一个程序 就是有三个数 求最大的一个
答:int main(){ int a,b,c,max;scanf("%d,%d,%d",&a,&b,&c);max=a;if(b>a) max=b;if(b>c) max=b;else if (c>a) max=c;printf("max=%d\n",max);return 0;} 基本思想:依次选出数组最小的数放到数组的前面。首先从数组的第二个元素开始往后遍历,找出最小的数放到第一个...

求助一个关于C语言的基础知识,指针的
答:你的说法有错误。看例子吧。char * a[]={"china", "usa", "russia"};C语言没有字符串类型。a是一个字符指针数组。把3个字符串放到常量区,返回它们的地址,放到数组中。数组名被编译成指向首元素的地址常量。a指向元素a[0]。而a[0]是char *型的,所以a是char **型的。相似地,命令行...

c语言已知一个直角三角形的两条直角边的边长,求三角形的面积和...
答:1、直角三角形两直角边的平方和等于斜边的平方。如图2,∠BAC=90°,则AB²+AC²=BC²(勾股定理)2、在直角三角形中,两个锐角互余。如图2,若∠BAC=90°,则∠B+∠C=90° 3、直角三角形中,斜边上的中线等于斜边的一半(即直角三角形的外心位于斜边的中点,外接圆半径R=C/2...

简单C语言改错,刚开始学的,编了一个小程序就是不知道哪里有问题,不会改...
答:这句,你多写了个双引号。你的问题很多,你里边有两个函数都没有写执行体 void num_kecheng();void inputstu();这两个函数仅仅定义了,但是没有方法执行 你的flag变量定义了两次而且都没有给赋初值,你全局定义了一次局部又定义了一次。看你的代码估计就想用一个所以不要再main()函数中在定义了...

用C语言设计一个简单计算器
答:else if(p=='*') multiplication(a,b,c);else if(p=='/') div(a,b,c);else puts("没有注册这个运算符号\n"); }以上是设计的一个简易计算器。可以进行相应的加减乘除。简介:C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所...

C语言:编写程序,输入一个三角形的三条边,若能构成一个三角形,则输出相...
答:return A;}/* 三角形三边长判定 *//* 任意两边大于第三边,可构成三角形,返回1,否则返回0 */int edge (float a, float b, float c) {return (a+b>c && a+c>b && b+c>a);}int main (void) {float a, b, c; /* 三角形三边长 */printf ("输入三角形三边长:");scanf (...

C语言问题:一个两字节的存储单元所存的最小整数
答:对于所有整数在内存中都是以整数的补码形式存在,2个字节是2*8=16位,而位是用0或1表示的,自己画16个空格,如果是最大正整数的话,开头第一位必须是符号位0,然后后面的15位都是1,所以表示的最大十进制整数是32767,如果是最小负整数的话,开头第一位必须是符号位1,另外要记住这样一个关系...

用c语言编写一个网络爬虫需要什么基础?
答:然而,使用C语言编写网络爬虫需要编写大量的底层代码,包括网络连接、数据解析、多线程处理等,相对较为复杂。如果您想快速、简单地进行数据采集,推荐使用八爪鱼采集器。八爪鱼采集器提供了简单易用的操作界面和丰富的功能,无需编程和代码知识即可轻松进行数据采集和分析。八爪鱼为用户准备了一系列简洁易懂...