㈠ 【程序填空】下面的程序是求1!+3!+5!+……+n!的和,程序中有4个 空,填空使程序完整。
答案:
空1:s=0;
空2:for(i=1;i<=n; i+=2)
空3:for(j=1;j<=i;j++)
空4:f*=j;
变量在定义后,里面的值不一定是0,不同的电脑系统值是不一样的,所以空1要先对s初始化,赋初值0。
程序中的i是用来标志式中的1、3、5.....这些数字都有一个特性,后裔隔壁前一个加2,所以空2天上for(i=1;i<=n; i+=2)
由于阶乘是从1累乘到数本身,所以阶乘的判断条件是j<=i,及第三空为:for(j=1;j<=i;j++)。
由于阶乘是一个累乘,所以第四空用f*=j;
完整的代码及vc6.0的运行如下图:
(1)下面程序是求135扩展阅读:
对于看结果补充程序的题目,答题技巧很重要,总结了三步走的经验:
第一步对题目深入理解,分析需要用到的变量。
第二步先不看给出的代码,根据题目要求自己大概书写一遍实现的代码。
第三步看代码题目代码,并知道每个变量的作用。
㈡ 为什么下面的程序运行结果是135
你j+10没起作用。
你的程序可等价为sum = sum + i + 10;
所以结果是135。
㈢ 编写一个程序求一个由10项元素组成的等差数列,其奇数项和为135,偶数项和为150。
public class java_16
{
public static void main(String args[])
{
int s1,s2,d,n,a,i;
int Ap[]=new int[11];
for(d=1; d<=4; d++)
{
for(a=0; a<=20; a++)
{
for(n=1; n<=10; n++)
{
Ap[n]=a+(n-1)*d;//。。。。这条及下面一条语句改成这样子就可以了
// a=a+d;//。。。。。这行改变了a的值使a只循环了一次就退出循环了
}
s1=Ap[1]+Ap[3]+Ap[5]+Ap[7]+Ap[9];
s2=Ap[2]+Ap[4]+Ap[6]+Ap[8]+Ap[10];
if((s1==135)&&(s2==150))
{
for(i=1; i<=10; i++)
System.out.println(Ap[i]+" ");
}
}
}
}
}
㈣ 百度问问有以下程序: main(int argc,char *argv[ ]) { int n=0,i; for( i=1; i<argc;i++) n=n*10+*argv[i]
argc 是命令行参数总个数,含程序名。
argv[i] 是命令行第几个参数,i=0 是程序名,i=1,2,3... 是接下去的参数,注意:是字符串形式。
如果输入形式是:
a.exe 1 3 5
下面程序计算出 n=135
main(int argc,char *argv[])
{
int i,n=0;
for (i=1;i<argc;i++){
n = n*10 + (argv[i][0]-'0');
}
printf("%d ",n);
}
㈤ 以下程序功能是:将输入的正整数按逆序输出。例如,若输入135,则输出531,请填空
#include<stdio.h>
int num, a[10], i, k=0;
printf("请输入一个正整数:");
scanf("%d", &num);
// 分离正整数的每一位,并存放到数组a中
while(num>0)
a[k++] = num%10; // 将正整数的最低位保存到数组a中
num /= 10; // 将正整数的次低位变为最低位
// 输出数组的每个元素,即实现逆序输出正整数
for(i=0; i<k; i++)
printf("%d", a[i]);
int n1,n2;
scanf("%d",&n2);
while((n2/1)!=0) //此处填写(n2/1)!=0 ,题目的原理在于对任意一整数比如n2=1234,
//n1=n2%10得到个位4输出,然后n2=n2/10,则得到123,反复应用此法
//直到n2变为个位数,此时n2的数值为输入时的最高位数值,n2/1仍然!=0
//输出该位后,n2=n2/10,得到的必然为0,因为n2为个位数。
(5)下面程序是求135扩展阅读:
如果是运算符,则比较优先级。如果当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),则将运算符直接入栈;否则将栈顶运算符出栈并输出,直到当前运算符的优先级大于等于栈顶运算符的优先级(当栈顶是括号时,直接入栈),再将当前运算符入栈。
如果是括号,则根据括号的方向进行处理。如果是右括号,则直接入栈;否则,遇右括号前将所有的运算符全部出栈并输出,遇右括号后将左右的两括号一起删除。
㈥ 求c语言大佬 写改错题 有图也有文字 文字跟图上是一样的
从上至下(1)(2)(3)——
(1)
long sum;改为long sum=0;。
sum+=1;改为sum+=i;。
printf(""
the number is %ld"",sum);改为printf("
the number is %ld
",sum);——未标错,但有错。
(2)
s=0.0; t=1.0;改为s=1.0; t=1.0;或s=t=1.0;。
return t;改为return s;。
printf(""
%12.10lf"", fun(20));改为printf("
%12.10lf
", fun(20));——未标错,但有错。
(3)
for ( i=1;i<=500;i+)改为for ( i=1;i<=500;i++)。
sum=+i;改为sum+=i;。
printf(""%d
"",sum);改为printf("%d
",sum);——未标错,但有错。