询文


私信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>
#include <string.h>
#include <math.h>
int main ()
{
   int n,i,s;
   scanf("%d",&n);
   for(i=0,s=0;i<=n;i+=2)
   {
   	s+=i;
   }
   printf("%d",s);
}
2021-09-06 22:26:17
你这个a[n]不报错真是奇迹,Visual Studio直接报4个错误,真不知道你用的什么编译器(-_-||)
用动态数组需要用到指针,正确代码如下:

#include<stdio.h>
#include<stdlib.h>

int main()
{
	int *num;
	int	n=0;
	scanf("%d", &n);
	num = (int*)malloc(n * sizeof(int));
	
	int i,sum = 0;
	for (i = 0; i < n; i++)
	{
		scanf("%d", num + i);
		int m;
		m = *(num + i);
		if (m % 2 == 0)
			sum += m;
	}
	printf("%d\n", sum);

	return 0;
}
2021-09-02 10:15:48
因为n是变量,不能写成a[n],要是按你的意思先要#define N 100后面再写a[N]
2021-05-06 14:40:50
你tm的这是什么,有十多个错。请你以后不要乱写题解免得误人子弟,你个laji .
2021-04-10 21:00:24
你这arr[n]不报错????
2021-04-02 09:00:10
#include<stdio.h>
int main()
{
    int a,b=0,d=0;
    int c[a];
    scanf("%d",&a);
    for(b<a;;b++)
    {   
        scanf("%d",&c[b]);
        if(c[b]%2==0)
        d=d+c[b];
        
    }
    printf("%d",d);
    
    
	return 0;

}
大佬求解 为啥我的运行时间超时
2021-03-27 15:39:11