| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2388 人关注过本帖
标题:如有 int a[10],如果有负数将所有的负数变为正数,然后输出奇数、偶数、素 ...
只看楼主 加入收藏
opq2020
Rank: 1
等 级:新手上路
帖 子:15
专家分:3
注 册:2020-4-3
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:3 
如有 int a[10],如果有负数将所有的负数变为正数,然后输出奇数、偶数、素数和 完数的个数。
#include<stdio.h>
int main()
{int a[10],i,j=0,p=0,l=0,q=0,s;
for(i=0;i<10;i++)
scanf("%d",&a[i]);
for(i=0;i<10;i++)
{if(a[i]<0)
a[i]=-a[i];
for(i=0;i<10;i++)
{
if(a[i]%2==0)
j++;
else
p++;}
for(p=2;p<=a[i];p++)
{ if(a[i]%p==0)
break;
if(p>a[i])
l++;
}s=0;for(p=2;p<=a[i];p++)
{if(a[i]%p==0)
s+=p;
}if(s==a[i])
q++;
}printf("奇数是%d,偶数是%d,素数是%d,完数是%d",j,p,l,q);
}结果是错的,找了半天也没发现,求大佬帮忙
搜索更多相关主题的帖子: for 负数 素数 int if 
2020-04-20 19:14
lin5161678
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:45
帖 子:1136
专家分:3729
注 册:2011-12-3
收藏
得分:10 
每个统计单独写一个函数处理 不要挤在一起
然后缩进对齐做好 并且 用[code]标签把代码括起来

https://zh.
2020-04-20 19:26
return_0
Rank: 8Rank: 8
来 自:五维空间
等 级:禁止访问
威 望:3
帖 子:512
专家分:838
注 册:2020-1-28
收藏
得分:0 
怎么每个if都没有前括号只有后括号?!?!

2020-04-20 22:01
吕孟伟
Rank: 8Rank: 8
等 级:贵宾
威 望:27
帖 子:200
专家分:870
注 册:2018-10-4
收藏
得分:10 
程序代码:
#include <stdio.h>
#define N 10

void Convert_NegVal_to_posVal(int* a, int length)
{
    for(size_t i = 0; i != length; ++i){
        if(a[i] < 0){
            a[i] = -a[i];
        }
    }
}
unsigned odd(int* a, int length)
{
    unsigned odd = 0;
    for(size_t i = 0; i < length; ++i){
        if(a[i]%2){
            ++odd;
        }
    }
    return odd;
}
unsigned even(int* a, int length)
{
    unsigned even = 0;
    for(size_t i = 0; i < length; ++i){
        if(!(a[i]%2)){
            ++even;
        }
    }
    return even;
}
unsigned prime(int* a, int length)
{
    unsigned prime = 0;
    int i, j;
    for(i = 0; i < length; ++i){
        for( j = 2; j <= a[i]; ++j){
            if(0 == a[i] % j){
                break;
            }
        }
        if(j == a[i]){
            ++prime;
        }
    }
    return prime;
}
unsigned complete(int* a, int length)
{
    unsigned complete = 0;
    unsigned sum;
    size_t i, j;
    for(i = 0; i < length; ++i){
        for( j = 1, sum = 0; j < a[i]; ++j){
            if(0 == a[i]%j){
                sum += j;
            }
        }
        if(0 == a[i]){
            continue;
        }
        if(sum == a[i]){
            ++complete;
        }
    }
    return complete;
}

int main(void)
{
    int a[N] = {0};
    unsigned oddval, evenval, primeval, completeval;
    oddval = evenval = primeval = completeval = 0;
    printf("Please you input the array element: ");
    for(size_t i = 0; i != N; ++i){
        scanf("%d", &a[i]);
    }
    int length = sizeof(a)/sizeof(int);
    //将负数转换成正数
    Convert_NegVal_to_posVal(a, length);
    //判断奇数、偶数、素数和 完数的个数
    oddval = odd(a, length);
    evenval = even(a, length);
    primeval = prime(a, length);
    completeval = complete(a, length);
    printf("odd has %d, even has %d, prime has %d, complete has %d\n", oddval, evenval, primeval, completeval);
    return 0;
}

借用一下侯捷的话:勿在浮沙筑高台。
2020-04-21 12:27
快速回复:如有 int a[10],如果有负数将所有的负数变为正数,然后输出奇数、偶数 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025916 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved