|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 乐瑜 于 2021-11-3 23:24 编辑
输入一组整数,求其中正数的平均值,以0结束输入。请问,我的代码中可以🈶️更优的循环输入方式吗?
- #include<stdio.h>
- #define M 100
- int main ()
- {
- int a[M],sum,i,j;
- float ave;
- i=-1;
- sum =0;
- j =0;
- do {
- i++;
- scanf(“%d”,&a[i]);
- }while(a[i]!=0);
- for(i=0;;i++){
- if(a[i]>0){
- sum=sum+a[i];
- j ++;
- }
- }
- printf(“ave=%lf”,sum/j);
- }
复制代码
感觉这样也不错吧?
- #include <stdio.h>
- #define M 100
- int main() {
- int a[M], sum, i, j;
- //float ave;
- i = -1;
- sum = 0;
- j = 0;
- do {
- i++;
- // scanf(“%d”,&a[i]);
- scanf("%d", &a[i]);
- } while(a[i] != 0);
- for(i = 0;; i++) {
- if(a[i] > 0) {
- sum = sum + a[i];
- j++;
- //}
- } else break;
- }
- // printf(“ave=%lf”,sum/j);
- //printf("ave=%lf", sum / j);
- //printf("ave=%lf", (double)sum / j);
- printf("ave=%lf\n", (double)sum / j);
- return 0;
- }
复制代码
这样可以吗?
- #include <stdio.h>
- int main(void) {
- size_t size = 0;
- size_t sum = 0;
- while(1) {
- int temp; scanf("%d", &temp);
- if(temp == 0) break;
- sum += temp; ++size;
- }
- printf("%lf\n", (double)sum / size);
- return 0;
- }
复制代码
|
|