乐瑜 发表于 2021-11-3 21:04:25

C语言-循环

本帖最后由 乐瑜 于 2021-11-3 23:24 编辑

输入一组整数,求其中正数的平均值,以0结束输入。请问,我的代码中可以🈶️更优的循环输入方式吗?
#include<stdio.h>
#define M 100
int main ()
{
int a,sum,i,j;
float ave;
i=-1;
sum =0;
j =0;
do {
i++;
scanf(“%d”,&a);
}while(a!=0);
for(i=0;;i++){
if(a>0){
sum=sum+a;
j ++;
}
}
printf(“ave=%lf”,sum/j);
}

人造人 发表于 2021-11-3 21:55:30

C语音 是什么呀?

乐瑜 发表于 2021-11-3 23:24:15

C语言 打错了

乐瑜 发表于 2021-11-3 23:25:56

人造人 发表于 2021-11-3 21:55
C语音 是什么呀?

...打错了

人造人 发表于 2021-11-3 23:46:00

感觉这样也不错吧?
#include <stdio.h>

#define M 100

int main() {
    int a, sum, i, j;
    //float ave;
    i = -1;
    sum = 0;
    j = 0;
    do {
      i++;
      // scanf(“%d”,&a);
      scanf("%d", &a);
    } while(a != 0);
    for(i = 0;; i++) {
      if(a > 0) {
            sum = sum + a;
            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;
}

乐瑜 发表于 2021-11-4 08:29:14

人造人 发表于 2021-11-3 23:46
感觉这样也不错吧?




好的,谢谢你。
页: [1]
查看完整版本: C语言-循环