>>623 もっと格好良い方法がないものか
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int isfloat(char *f){
  while(isspace(*f)) f++;
  if(*f == '-') f++;
  while(isdigit(*f)) f++;
  if(*f == '\0') return 1;
  if(*f != '.') return 0;
  f++;
  while(isdigit(*f)) f++;
  if(*f == '\0') return 1;
  return 0;
}
int main(void){
  float num, sum = 0;
  char f[128];
  while(1){
    printf("実数を入力(q:end):");
    scanf("%127s", f);
    if(f[0] == 'q' && f[1] == '\0') break;
    if(isfloat(f)){
      num = atof(f);
      sum += num;
      printf("num = %f\nsum = %f\n", num, sum);
    }else
      printf("この文字列は実数が(ry\n");
  }
  printf("sum = %f\n", sum);
  return 0;
}