Ⅰ 用c语言(VC++6.0)1.求1000以内能被73或127整除的自然数平方根之和。补充在下面。
由于1000以内的73的倍数与127的倍数不存在相同的(这是因为73是
素数
,127是素数,它们的
最小公倍数
是73*127=9271),为了提高性能,则第一题程序可如下
#include
<stdio.h>
#include
<math.h>
void
main(
)
{
int
i;
double
sum
=
0.0;
for(i
=
73;
i
<
1000;
i
+=
73)
sum
+=
sqrt(i);
for(i
=
127;
i
<
1000;
i
+=
127)
sum
+=
sqrt(i);
printf("sum=%lf\n",
sum);
}
第一个
for循环
执行13次,第二个for循环执行7次,共做21次求sqrt运算和求和运算,远小于1000次。
第二题
#include
<stdio.h>
void
main(
)
{
int
i,
a,
b,
c;
double
sum
=
0.0;
for(i
=
0,
a
=
1,
b
=
1;
i
<
30;
i++)
{
c
=
a
+
b;
a
=
b,
b
=
c;
sum
+=
1.0
*
b
/
a;
}
printf("sum=%lf\n",
sum);
}
Ⅱ C语言问题(73-5.7)
素数就是除了1和自身不能被任何数整除的数,其实当除数达到被除数的二分之一时,如果还不能被整除,即可以认为是素数,因为一个大于其二分之一的数必然不能被整除,所以程序里的K就是这个意思.然后用第一个if看NUM是否能整除I,如果可以,说明不是素数,没必要进行下去,就退出,如果不能被整除,I一直增大到K,可能是素数,但还不能确定,定义它大于K时,确保不可能会有其他的数可以整除时,说明是素数
Ⅲ 关于C语言的问题
首先,本身这个程序写的有问题,a没有初始化。
其次,不知道你用的是什么编译环境,不好解释。
另外,一般来说,你在编译的时候会提示信息,如果你没有关注提示信息,并初始化变量,说明你在编程方面是不合格的。
最后,一个合格的程序员,初始化变量是最基本的技能,至于为什么结果会是73,重要吗?
Ⅳ C语言编程 对下列数73 88 51 23 6 71 98 12 66 53 按照由小到大排序
#include<stdio.h>
#include<stdlib.h>
intmain(intargc,char*argv[]){
ints[10]={73,88,51,23,6,71,98,2,66,53};
inti,j;
for(i=0;i<9;i++)
{
for(j=0;j<10-1-i;j++)
{
if(s[j]>s[j+1])
{
inttemp=s[j+1];
s[j+1]=s[j];
s[j]=temp;
}
}
}
for(i=0;i<10;i++)
{
printf("%2d",s[i]);
}
return0;
}
Ⅳ C语言中整型常量有几种形式它们是如何表示的
在C语言中,整型常量分为十进制整型常量、八进制整型常量和十六进制整型常量三种表示形式。
1、十进制整型常量
此种格式的整型常量只能出现 0~9 的数字,且可带正、负号。比如:
0 1 364 28 -34
2、八进制整型常量
此种格式的整型常量以数字0开头的八进制数字串。其中数字为 0~7。例如:
0111十进制 73、 011十进制 9、 0123十进制 83、
3、十六进制整型常量
此种格式的整型常量以0x或0X(x是大写)开头的十六进制数字串。其中每个数字可以是 0~9、a~f或 A~
F 中的数字或英文字母。例如:
0x11十进制 17、 0Xa5十进制 165、 0x5a十进制 90、
Ⅵ c语言问题 求出数组secre[10]=83,73,69,90,87,65,76,77,82,9
voidmain()
{
intsecre[10]={83,73,69,90,87,65,76,77,82,98};
inthight[10],low[10];
intavg=0;
inttotal=0,highCount=0,lowCount=0;
inti=0;
for(i=0;i<10;i++)
{
total+=secre[i];
}
avg=total/10;
for(i=0;i<10;i++)
{
if(secre[i]*10>total)
{
high[highCount]=secre[i];
hightCount++;
}
elseif(secrc[i]*10<total)
{
low[lowCount]=secre[i];
lowCount++;
}
}
printf("higharray: ")
printf("%d",high[0]);
for(i=1;i<highCount;i++)
{
printf(",%d",high[i]);
}
printf(" ");
printf("lowarray: ")
printf("%d",low[0]);
for(i=1;i<lowCount;i++)
{
printf(",%d",low[i]);
}
printf(" ");
}
Ⅶ C语言编程题,求数组89,80,95,84,73,84,91,78,87,94的和以及平均值
#include<stdio.h>
voidmain()
{
inta[10]={89,80,95,84,73,84,91,78,87,94};
inti,sum=0;
floatavg;
for(i=0;i<10;i++)
{
sum+=a[i];
}
avg=sum*1.0/10;
printf("thesum=%d theavg=%.2f ",sum,avg);
}
Ⅷ C语言 数制转换问题
077为(63),0111为(73),0xab为(171)
"0"(数字)开头是八进制,"0X"(数字"0"和字母"x")开头是十六进制,什么都没有是十进制,0111如果是二进制,题目会特别说明或者能明显看出来
Ⅸ C语言问题
发图上来吧,不然搞不懂,但是可以看出a[i]=73||a[i]=79||a[i]=105||a[i]=111这里大概错了,因为=是赋值运算符,==才是判断符。还有,i到底是变量还是数组名称?
Ⅹ C语言中的问题
8进制即逢8进1,16进制即逢16进1
16进制是这样的,0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
A代表10,其余的类推
所以16进制数6B转换为10进制就是6*16+11=107
假如8进制数73转换为10进制就是7*8+3=59
就好像十进制数123表示为1*100+2*10+3*1一样
8进制,16进制的联系是2进制,即转换都要先转换成2进制
8进制由3位2进制组成,16进制由4位2进制组成
对8进制来讲:000代表0 001代表1 010代表2 011代表3
100代表4 101代表5 110代表6 111代表7
对16进制来讲:0000代表0 0001代表1 0010代表2 0011代表3
0100代表4 0101代表5 0110代表6 0111代表7
1000代表8 1001代表9 1010代表A 1011代表B
1100代表C 1101代表D 1110代表E 1111代表F
所以8进制数73可以看成111 011
而16进制数6B可以看成0110 1011