㈠ 【程序填空】下面的程序是求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);——未標錯,但有錯。