询文


私信TA

用户名:OX64

访问量:10753

签 名:

授人以鱼,不如授人以渔

等  级
排  名 2333
经  验 2352
参赛次数 1
文章发表 12
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

规则之下,任尔跋扈!

解题思路:
1、输入n

2、数组存放n个整数

3、用sum叠加

注意事项:
1、直接在主函数里定义数组a,大小为变量n,感觉有问题,不能赋初值

赋初值时,如  int a[n]={0};

则有错误提示: error: variable-sized object `a' may not be initialized

参考代码:

刚开始想的,

#include "stdio.h"
main(){
    int n;
    scanf("%d",&n);
    int a[n]; //这里虽然可以运行,但还是有问题,这样做感觉是不好的 
    int sum=0;
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        if(a[i]%2==0)
            sum+=a[i];
    }
    printf("%d\n",sum);
}

上面的有点问题,但不知道,大佬们可以指出谢谢


后来直接改成函数调用的

#include "stdio.h"
void fun(int n){ //输入并求偶数之和,同时输出 
    int a[n],sum=0;
    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);//输入 
        if(a[i]%2==0) //判断偶数 
            sum+=a[i]; //是偶数则叠加 
    }
    printf("%d\n",sum); //不返回直接输出 
}
int main(){
    int n; //n个整数 
    scanf("%d",&n);
    fun(n);//调用函数 
    return 0;
}


 

0.0分

30 人评分

  评论区

#include<stdio.h>
int main()
{
	int m,n,i,sum;
	sum=0;
	scanf("%d",&n);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&m);
		if(m%2==0) sum+=m;
	}
	printf("%d",sum);
	return 0;
}给家人们理解0.0
2023-11-01 00:35:05
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) 
{
	int i,n,a[n],sum = 0;
	scanf("%d",&n);
	for(i = 0;i < n;i++)
	{
		scanf("%d",&a[i]);
		if(a[i]%2 == 0)
		{
			sum += a[i];
		}
	}
	printf("%d",sum);
	return 0;
}
2023-04-17 20:31:18
#include <stdio.h>
int main(void)
{
	void sum(int n);
	int n = 0;
	scanf("%d", &n);
	sum(n);
	
	return 0;
}

void sum(int n)
{
	int number;
	int i;
	int sum = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", &number);
		if (number % 2 == 0)
			sum = sum + number;	
	}
	printf("%d", sum);
}

不明白你为什么一定要用数组呢?用变量就行了啊。
2023-02-15 10:26:30
不是你这数组a[n]是变量怎么能过的呢
2022-08-03 12:06:17
#include"stdio.h"
#include"math.h"
#include"string.h"
int main()
{ 
   int n;
   int a[100];
   int count=0;
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
    scanf("%d",&a[i]);
   }
    for(int i=0;i<n;i++)
   {
      if((a[i]%2)==0)
     count=a[i]+count;
   }
   printf("%d",count);
   return 0;
}
2022-07-05 11:14:07
#include"stdio.h"
#include"math.h"
#include"string.h"
int main()
{ 
   int n;
   int a[100];
   int count=0;
   scanf("%d",&n);
   for(int i=0;i<n;i++)
   {
    scanf("%d",&a[i]);
   }
    for(int i=0;i<n;i++)
   {
      if((a[i]%2)==0)
     count=a[i]+count;
   }
   printf("%d",count);
   return 0;
}
2022-07-05 11:13:01
我目前用的三个编译器,一个是vs2022,兼容性最差,另一个是手机上的C语言编译器,一个就是C语言网的在线编程,兼容性最好。众所周知,vs不能arr[n];我手机上的要先对n输入值,这样:
int n;
scanf("%d",&n);
int Arr[n];
这样不会报错,而换成这样:
int n,arr[n];
scanf("%d",&n);
会报错,而在线编程不会。
什么?你问我为什么这么闲研究这个?因为我还不会动态数组
2022-05-31 20:49:12
C prime plus 中写到C99标准开始允许声明 a[n],这创建了一种新型数组称为变长数组,称为VLA,C11把VLC设定为可选,在devc++中的确这样也没报错,编译器的问题吧,也不能完全就是说错误。
2021-12-01 18:38:36