解题思路:
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
#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; }
#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); } 不明白你为什么一定要用数组呢?用变量就行了啊。
不是你这数组a[n]是变量怎么能过的呢
#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; }
#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; }
我目前用的三个编译器,一个是vs2022,兼容性最差,另一个是手机上的C语言编译器,一个就是C语言网的在线编程,兼容性最好。众所周知,vs不能arr[n];我手机上的要先对n输入值,这样: int n; scanf("%d",&n); int Arr[n]; 这样不会报错,而换成这样: int n,arr[n]; scanf("%d",&n); 会报错,而在线编程不会。 什么?你问我为什么这么闲研究这个?因为我还不会动态数组
C prime plus 中写到C99标准开始允许声明 a[n],这创建了一种新型数组称为变长数组,称为VLA,C11把VLC设定为可选,在devc++中的确这样也没报错,编译器的问题吧,也不能完全就是说错误。
母牛的故事 (C语言代码)浏览:478 |
2005年春浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:672 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:268 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:388 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:702 |
IP判断 (C语言代码)浏览:592 |
前10名 (C语言代码)浏览:773 |
拆分位数 (C语言代码)浏览:558 |
C语言程序设计教程(第三版)课后习题8.9 (C语言代码)浏览:576 |
买不到的数目 (C语言代码)浏览:3134 |
小辣鸡 2023-11-20 17:26:01 |
输入n个数字,为什么光一个m变量也能过呀?(纯请教,没有恶意,我是新手)
荆棘鸟的呼唤 2023-12-21 20:21:54 |
每次循环m被赋予新的值