#include <stdioh>
#define y 3//宏定义,这样写有助于检验
int p(int a[])
{
int x,sum=0;
for(x=0;x<y;x++)
sum=sum+a[x];
return sum;
}
void main()
{
int a[y],x,sum;
for(x=0;x<y;x++)
scanf("%d",&a[x]);
sum=p(a);
printf("%d",sum);
}你要的是这个吗?亲测没问题
第一个:是因为sum没有初始化,系统会给它一个随机值。所以不确定。。。
第二个:(x++)这个式子是x加1之前的值,(--x)这个式子 是x加1之后的值。你的程序执行完do后x=1;
那(--x)是0,那while判断(!(--x))是真(这时x等于0),所以继续执行,下一次x=-2,输出-2。while判断为假,所以终止循环。。
第三个:(c>= 'a' )&&(c<= 'z' )是正确的。
'a'<=c<= 'z'这个在数学里是这么表示的但是计算机里这么是错的,那我来给你分析一下:‘a’<=c这个不管c是什么值,a’<=c这个式子只有两个值:0,1;即真和假,那0或1<='z'永远都是真。所以这个是个定值,就是真(1);这会应该明白机器和人是不一样的。哈哈。。。。希望明白了。那两个式子比较简单,你自己就能明白了。。还有疑问请QQ我115088917,我们在探讨。。
#include <stdioh>
int sumEven(int (array)[5], int row){
int sum;--- sum = 0; ---(4分);
for(int i=0; i<row; i++)
for(int j=0; j<5; j++)
if( --- array[i][j] % 2 == 0 ---(4分) ) sum += --- array[i][j] ---(4分) ;
return sum;
}
int main(){
int array[4][5];
for(int i=0; i<4; i++)
for(int j=0; j<5; j++)
scanf("%d", --- &array[i][j] ----(4分));
printf("%d\n", sumEven( --- array[i][j], 4 ---(4分) ) ); //注意:所填的空之外两端均已有括号,只需填写函数的参数
return 0;
}
由于每次循环上来就先把sum清0,导致以前循环的sum值被清除了,所以sum是最后一次循环执行的结果i=10,sum=0,sum=sum+i=0+10=10
象这样sum才等于累加和55:
sum=0; for ( i=1;i<=10;i++ ) sum=sum+i;
C、不确定
sum+=i的意思是sum=sum+i
而sum没有被赋值。
楼上的胡说,如果定义了sum==0,那么sum将作为一个常量而不是变量,后面的sum+=i将出错,你这程序去编译就会报错。
#include <stdioh>
#include <stdlibh>
#include <stringh>
int main(int argc, char argv[])
{
int sum = 0;
while(--argc)
{
if(argc != 0)
{
sum += atoi(argv[argc]);
}
}
printf("%d\n", sum);
system("pause");
return 0;
}
我用VS2012试的,没有问题。命令行参数设置为2 4 6 8 时输出20,设置为2 4 6 8 12时为32
以上就是关于编写一个程序sum,计算任一输入的证书的各位数字之和,在主函数中输入输出该函数,并输出各位数字之和。全部的内容,包括:编写一个程序sum,计算任一输入的证书的各位数字之和,在主函数中输入输出该函数,并输出各位数字之和。、c语言以下程序执行后sum的值是、C语言程序填空等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)