|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
- #include<stdio.h>
- void fun(int *a,int n,int *odd,int *even)
- {
- int i;
- *odd=0;
- *even=0;
- for(i=0;i<n;i++)
- {
- if(*a%2==0)
- {
- *even=*even+*a;
- }
- else
- {
- *odd=*odd+*a;
- }
- *a++;
- }
- }
- int main()
- {
- int n,i;
- int *odd,*even;
- printf("num:");
- scanf("%d",&n);
- int a[n];
- printf("input:");
- for(i=0;i<n;i++)
- {
- scanf("%d",&a[i]);
- }
- fun(a,n,odd,even);
- printf("数组a中所有奇数之和为%d\n",*odd);
- printf("数组a中所有偶数之和为%d\n",*even);
- }
复制代码
这个程序哪里错了呀,看起来是因为地址没传进函数,指针初始化没指向东西,但不知道如何操作,于是来这里求助
本帖最后由 jackz007 于 2022-11-29 21:37 编辑
- #include<stdio.h>
- void fun(int * a , int n , int * odd , int * even)
- {
- int i ;
- for(i = * odd = * even = 0 ; i < n ; i ++) {
- if(a[i] % 2 == 0) * even += a[i] ;
- else * odd += a[i] ;
- }
- }
- int main(void)
- {
- int i , n , odd , even ;
- printf("num : ") ;
- scanf("%d" , & n) ;
- int a[n] ;
- printf("input : ") ;
- for(i = 0 ; i < n ; i ++) scanf("%d" , & a[i]) ;
- fun(a , n , & odd , & even) ;
- printf("数组 a 中所有奇数之和为 %d\n" , odd) ;
- printf("数组 a 中所有偶数之和为 %d\n" , even) ;
- }
复制代码
编译运行实况:
- D:\[00.Exerciese.2022]\C>g++ -o x x.c
- D:\[00.Exerciese.2022]\C>x
- num : 15
- input : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
- 数组 a 中所有奇数之和为 64
- 数组 a 中所有偶数之和为 56
- D:\[00.Exerciese.2022]\C>
复制代码
|
|