华为2014年机试题1 (输入1--50个数字,求出最小数和最大数的和 )

发布时间:2016-12-6 18:14:05 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"华为2014年机试题1 (输入1--50个数字,求出最小数和最大数的和 )",主要涉及到华为2014年机试题1 (输入1--50个数字,求出最小数和最大数的和 )方面的内容,对于华为2014年机试题1 (输入1--50个数字,求出最小数和最大数的和 )感兴趣的同学可以参考一下。

http://blog.csdn.net/xuzhilong2009/article/details/11751001 //华为2014年机试题1:输入1--50个数字,求出最小数和最大数的和 //输入以逗号隔开 #include<stdio.h> #define N 50 void sort(int a[],int n); int main(void) { char str[100]; int a[N]={0}; gets(str); //要点1:动态的输入1--50个整数,不能确定个数,只能用字符串输入,然后分离出来 int i=0; int j=0; int sign=1; while(str[i]!='\0') { if(str[i]!=',') //输入时要在半角输入 { if(str[i] == '-') //要点:2:有负整数的输入 { // i++; //易错点1 sign=-1; } else if(str[i]!='\0') //不用else的话,负号也会减去‘0’ { a[j]=a[j]*10 + str[i]-'0'; //要点3:输入的可以是多位数 } } i++; if(str[i]==',' || str[i]=='\0') //这个判断是在i自加以后 { a[j]=a[j]*sign; //易错点2 sign=1; ////易错点3 j++; //j就是a数组的个数 范围0到j-1 } } sort(a,j); printf("Max number + Min number = %d",a[0]+a[j-1]); return 0; } void sort(int a[],int n) //选择排序 { int i,j; int k; int temp; for(i=0;i<n-1;i++) { k=i; for(j=i+1;j<n;j++) { if(a[k]>a[j]) k=j; } if(i!=k) { temp = a[k]; a[k] = a[i]; a[i] = temp; } } for(i=0;i<n;i++) printf("%-5d",a[i]); puts(""); }

上一篇:js window方法属性
下一篇:C++构造函数的总结,基本是构造函数的精华了

相关文章

相关评论