C语言的一道题,求大神详细解释下子。。。

作者&投稿:薄启 (若有异议请与网页底部的电邮联系)
C语言的一道题,看不懂题意,求大神讲解,谢谢啦~

就比如6=1+2+3。有三个因子(不包括6)分别是1,2,3 它们的和等于这个数本身,这个数就是完数了。
int number,i,sum=0;
printf("请输入一个正整数:");
scanf("%d",&number);
for(i=1,i<number;i++)
{
if(number%i==0)
{
sum+=i;
}
else
{
continue;
}
}
if(sum==number)
printf("%d是完数。",number);

你的程序根本就没有用到fun2啊,只调用了fun1

这是一个很简单的C语言程序。
#include<stdio.h> //引入必要的头文件,支持printf函数。
main() //主函数定义
{int x=15; //声明整数类型x,并赋初值15
while(x>10&&x<50) //当x大于10,并且x小于50的时候
{x++; //x增1,变成16
if(x/3) {x++;break;} //注意这个地方,先计算x除以3,如果值不等于零,则if判断为真,执行后面的语句。 即x增1,且跳出循环。 这个地方x是16 ,除以3得到5,不为0. 所以X加1,得到17,然后跳出循环。
else continue;}
printf(“%d\n”,x); } //最终打印17。

//
开始时,x = 15,满足条件x>10&&x<50,故进入循环while(),执行x++后,x = 16,16不能被3整除,即满足x%3 > 0,又执行x++,此后x = 17,执行break语句,跳出while循环,故代码输出为:
17。
//
#include<stdio.h>
int main() {
int x = 15;
while( x > 10 && x < 50) {
x++;
if(x/3) { // 如果x不能被3整除,则
x++;
break;
}
else continue;
}
printf("%d\n",x);
return 0;
}

#include<stdio.h> //包含的头文件 标准输入输出库

main() //主函数

int x=15; //定义变量并初始化

while(x>10&&x<50) //只有当x在10~50的范围内才进入循环

x++; //每次循环 x自增1

if(x/3) {x++;break;} //个人觉得这句应该是x%3才对 不然只要进入循环就会执行这条语句

它的原意应该是查找10到50范围内能被3整除的数然后打印出来,而如果x/3则没有必要了
else continue// 如果不满足前面的if(无论如何也会满足的 如果是x/3的话)就继续循环

printf(“%d\n”,x);//打印

具体你这程序想实现什么功能我也不明白,if(x/3)有什么意义呢?只有当x小于3时,此条件才不会成立,而你这,x一直大于3,也就是说一直成立,
x=15,进入while
x++;x=16;
if(x/3=5)为真;
x++;x=17;
最后输出x为17

1楼回答得很好。

两道C语言题目,求答案和解析,谢谢~
答:A:连续赋值,除了最右的项外,其余所有项都必须是可以赋值的变量,不可以是常量或者表达式。B:y==1是一个逻辑表达式,从题干得出其值为0,再将其赋值给x,最终结果是x被赋值0。C:i=float(x);语法错了。如果要实现将x强制转换为float类型并赋值给i,应该写作i=(float)(x);D:求余运算(%...

几个简单C语言编程题目,自己太笨做不来。求大神解答。速求
答:1.include <stdio.h>int main(){//求和int i,sum=0;for(i=1;i<=100;i++)sum+=i;//sum就是最后的和printf("1+2+3+...+100=%d",sum);return 0;}2.include <stdio.h>int main(){//最大最小值int a,b,c;int max,min;scanf("%d,%d,%d",&a,&b,&c);max=min=a;//...

求大神解答这道c语言题
答:结果为5 这里*p=x,是将p的指针指向了x[0]的地址,此时*p=x[0];当运行for循环时*p+=x[i];因此*P的值会变为*p=*p + x[i];不过在循环中有i++和p++,在执行每次循环之后p++将p指向的值后移了一位,而数组的本质也是指针;一次在执行一次循环之后x[0]的值会变为2,而*p因为后移了...

一个C语言的问题,求大神解答原因!
答:1、sub1中的变量a,b是其所在文件中定义的,其中a是静态全局变量,b是全局变量 a会默认初始化为0,因此第一次执行sub1()时输出结果中a=0+2=2, b=3+3=6。sub2中的变量a是其所在文件中定义的静态全局变量,因为与sub1()所处不同文件,因此变量a是不同的;而变量b是与另一个文件共享的全局...

c语言 这道题咋回事 哪位大神解释一下?求详细。
答:题目本意是考查答题者对于不同类型之间的指针进行强制类型转换的理解程度。先把一个指向char类型的指针强制转换为指向long的指针(即q=(long*)p;),然后对其进行++操作,指针的自增与所指类型有关,long类型在不同编译器中所占长度不一定一样,标准中只是说明其最短不能小于4个字节,并且不能比int小...

发现了一个有趣的c语言问题,请各位大神帮忙解释一下。
答:1.之所以再次编译值不改变,乃是因为系统在加载可执行镜像时所选取的栈的初始地址是相对固定的,a就在这个栈上,而且程序开始到main函数执行,这是一段按部就班的例程,没有什么变数,所以a的地址不变是可以理解的。2.scanf("%d",20000)这句合法并没有什么难以理解的地方,因为指针归根到底也只是一...

C语言问题求大神详细解析
答:声明和定义必须相同。还有函数的返回值类型为void时表示函数没有返回值,不能使用函数的返回值。a错 因为调用在定义之前但是没有声明 b错 函数定义的时候返回值类型为void,却欲图使用函数的返回值。c错 函数的声明返回值为int,定义返回值为void 不相符 d正确 ...

求大神给我解答一下这道C语言题
答:首先你需要明白前缀自增运算符和最后自增运算符,前缀是先加后用,后缀是先用后加。然后就是执行while里面的语句的条件是只要不为0即可。现在开始分析程序:a=-2,条件为真,a++,a=-1;++b,b=1,条件为真。执行;语句之后开始下一次:a=-1,条件为真,a++,a=0;++b,b=2,条件为真。执行...

C语言程序问题,求大神详解
答:按运算符优先级, a+=a-= (a=4)*(a=3); 等价于 a+= (a-=( (a=4)*(a=3) ) );可以分解为以下步骤:(1)声明与初始化 int a=5;(2)第一个小括号 a=4; a变4。(3)第二个小括号 a=3; a变3。(4) 计算表达式 ((a=4)*(a=3)), 3*3=9;(5) a-= ((a...

C语言程序设计中几个很基础的问题,求大神帮忙解答,感激不尽~~_百度...
答:x/3为int存储为3 y==3为true 取反则为0 B. y!=x%7 x%7=3 y!=3为false 则为0 C. x>0&&y<0 x>0 满足 y<0不满足 求同则为false 则为0 D. x!=y||x>=y x!=y满足 为true x>=y不满足 为false true||false 为true ...