Advertisement
Guest User

Untitled

a guest
Nov 17th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.36 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. void clear(char *string, int size){
  4.     // Очистка массива
  5.     for(int i=0; i<size; i++) string[i]=-1;
  6. }
  7.  
  8. int sum(char *string, int size){
  9.     // Подсчёт суммы цифр числа
  10.     // Если слово пустое или не число, то результат -1
  11.     if(size==0) return -1;
  12.     int res=0;
  13.     int i=0;
  14.     if((string[i]=='-' || string[i]=='+') && size>1) i++;
  15.     while(i<size){
  16.         if(0<=string[i]-'0' && string[i]-'0'<=9){
  17.             res+=string[i]-'0';
  18.         }else{
  19.             res=-1;
  20.             break;
  21.         }
  22.         i++;
  23.     }
  24.     return res;
  25. }
  26.  
  27. int main(){
  28.     char word[65536];
  29.     char s;
  30.     int i=0;
  31.     int last_sum=0;
  32.     int cur_sum=0;
  33.     int tmp;
  34.     while(scanf("%c", &s)>0){
  35.         if(s=='\n' || s==' ' || s=='\t'){
  36.             tmp=sum(word, i);
  37.             if(tmp>=0){
  38.                 last_sum=cur_sum;
  39.                 cur_sum=tmp;
  40.             }
  41.             clear(word, i);
  42.             i=-1;
  43.         }else{
  44.             //
  45.             word[i]=s;
  46.         }
  47.         i++;
  48.     }
  49.     // Обработка последнего слова, если оно не пустое
  50.     if(word[0]>0){
  51.         printf("\n");
  52.         tmp=sum(word, i);
  53.         if(tmp>=0){
  54.             last_sum=cur_sum;
  55.             cur_sum=tmp;
  56.         }
  57.     }
  58.     printf("%d\n", last_sum);
  59.     return 0;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement