求大神解题c++程序设计

1.奇偶数差(shucha)
【问题描述】
一个正整数序列(标号从1开始,不超过100),根据他们的奇偶性分别累加起来,把两类数(奇偶数)和相减,做到大的和减去小的和,最后将他们的差的输出出来。
【输入格式】 shucha.in
一行,包含包含n个正整数序列的每个元素,相邻两个整数之间用空格隔开。元素的绝对值不超过1000。(本题中数列个数n是不确定的)
【输出格式】 shucha.out
一行,两个数(分别是这个数列的个数、求出的差),中间用一个空格分开。
【输入样例】
2 13 34 10 14 78 11 1
【输入样例】
8 113

2. 奇偶数列差(shuliecha)
【问题描述】
一个正整数序列(标号从1开始,不超过100),利用排序功能快速将这个数列从1到n进行排序,然后根据他们排序后所在的位置奇数还是偶数分别累加起来,把两数列的和相减,做到大的和减去小的和,最后将他们的差的输出出来。

    奇偶数差(shucha):

代码:

#include <stdio.h>
#include<ctype.h>
void cal(int a[],int n){
int i,js=0,os=0;
    // 根据元素的奇偶性求和
    for(i=0;i<n;i++){
if(a[i]%2==0){
os += a[i];
}else{
js += a[i];
}
}
// 输出
if(os>js){
printf("%d %d\n",n,os-js);
}else{
printf("%d %d\n",n,js-os);
}
}

void main(){
    int a[1000];
char c;
int i=0;
int n=0;
while((c=getchar())!='\n')
{
if(isdigit(c)) {
        ungetc(c,stdin);
        scanf("%d",&a[n++]);
     }
 }
    
cal(a,n);

}

运行:

2. 奇偶数列差(shuliecha):

代码:

#include <stdio.h>
#include <ctype.h>
void cal(int a[],int n){
// 排序
int i,j,t;
int js=0,os=0;
    for(i=0;i<n-1;i++){
 for(j=i+1;j<n;j++){
if(a[i]>a[j]){
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
}
    // 根据位置的奇偶性对对应的数字求和计算
    for(i=0;i<n;i++){
if(i%2==0){
os += a[i];
}else{
js += a[i];
}
}
// 输出
if(os>js){
printf("%d %d\n",n,os-js);
}else{
printf("%d %d\n",n,js-os);
}
}

void main(){
    int a[1000];
char c;
int i=0;
int n=0;
while((c=getchar())!='\n')
{
if(isdigit(c)) {
        ungetc(c,stdin);
        scanf("%d",&a[n++]);
     }
 }

cal(a,n);
}

运行:

Over!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-12-16
你既然说的这么详细,还是自己编,是要花点时间,但是是值得的。自己学到了东西本回答被网友采纳
第2个回答  2018-12-16
黑道皇后深汕高速弟弟好等待戈多蝴蝶结打击盗版大哥
相似回答