2014-11-17 4 views
-1

Итак, у меня есть проблема на моем курсе C следующим образом: Загрузите файл 'mydatafile', размещенный на веб-сайте, перенесите файл на удаленный компьютер Unix и, на основе примера 'running_sum.c "перечислены на стр.26 книги Kelley-Полем, создать код C под названием„processdata.c“, которыйПодведение итогов в C

  • читает (как поплавки) число из файла данных
  • представить их на экране в три столбца в виде числа положительных чисел отрицательные числа
  • подсчитывает количество положительных и отрицательных чисел
  • вычисляет сумму всех положительных чисел и сумма всех отрицательных чисел
  • вывода результатов на экран как

    I have read … positive numbers, with a sum = …
    I have read … negative numbers, with a sum = …

Я включил мой код до сих пор. Он работает, но он дает мне положительные числа в отрицательном столбце и наоборот. Кроме того, я не слишком уверен, как подсчитать количество положительных и отрицательных значений и их сумму. Любая помощь будет принята с благодарностью.

#include <stdio.h> 
#include <stdlib.h> 

int main(void) 
{ 
    int i; 
    float x, positive, negative; 

    if (scanf("%lf", &x) !=1) { 
    printf("No data found\n"); 
    exit(1);} 

    positive=negative=x; 
    printf("%9s%22s%22s\n", 
    "Count", "Positive Numbers", "Negative Numbers"); 
    printf("%9d%22.3f%22.3f\n", 
     1, x, positive,negative); 

    for (i=2; scanf("%f", &x) == 1; ++i) { 
     if (x>0){ 
     positive=x; 
     negative=0;} 
     else if (x<0){ 
     negative=x; 
     positive=0;} 
     printf("%9d%22.3f%22.3f\n", i, x, positive, negative); 
    } 
    return 0; 
    } 
+0

На самом деле я не знаю, почему я это сделал. Теперь, когда я удалил x, он работает. Большое вам спасибо за вашу помощь. – Mike

+0

@ Zak (и OP): Домашние вопросы: [fine] (http://meta.stackexchange.com/questions/10811/how-do-i-ask-and-answer-homework- вопросы), если заявитель показывает, что он выполнял должную осмотрительность - представить полную проблему, а не просто ссылку, показать работу, сделанную до сих пор, дать минимальный пример и т. д. и т. д., все из которых были выполнены превосходно. Это модельный вопрос, действительно, по сравнению с даже многими не домохозяйствами. Тем не менее, именно в голове учащегося должно быть известно, будет ли в какой-то степени школа/курс рассматривать помощь на дому в качестве справедливой помощи против обмана/плагиата. – Amadan

+0

Чтобы получить суммы, просто добавьте что-то вроде 'int poscount = 0, negcount = 0;' в начале программы. Затем 'poscount ++' или 'negcount ++', когда вы находите положительное или отрицательное число. Для сумм вам понадобится 'sum + = x' или что-то подобное. 'sum' должен быть' float'. – yellowantphil

ответ

2

нужно изменить

printf("%9d%22.3f%22.3f\n", i, x, positive, negative); 

Для

printf("%9d%22.3f%22.3f\n", i, positive, negative); 

Это позволит решить эту проблему.

+0

Спасибо, мне также интересно, как получить пустое пространство вместо нулей. Я попробовал printf (""); и он возвратил 1 – Mike

+0

@Mike Try '\ t', он будет печатать области табуляции. например 'printf ("% d \ t% d ", a, b);' – Himanshu

Смежные вопросы