NoobisCoding Ответов: 1

Как мне сделать среднее, найти самое высокое?


У меня есть этот код:

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>



int main(int argc, char** argv)
{
	int age, height, weight, ok;
	char string[256], name[256];
	while (fgets(string, 256, stdin) != NULL) {
		ok = sscanf(string, "%[^;];%d;%d;%d", name, &age, &height, &weight);
		
		if (ok == 4) {
			
			
			
		}
	}
	return 0;
	
}


+ У меня есть некоторые значения: (имя, возраст, рост и вес)
Джордж Буш; 30;160;65;
Линдси Уонн;1; 80; 11;
Эрик Картман; 50;160;70;
Питер Петерсон; 40;180;80;

Я должен найти среднее значение возраста, веса и роста (разделено)
Я должен напечатать имя самого старшего и самого молодого человека.

Что я уже пробовал:

Я могу сделать это на c# довольно легко,но, к сожалению, я должен сделать это на C, и я застрял примерно на день ...

User 59241

Мы не пишем код для вас. Пожалуйста, опубликуйте свою попытку для обзора.

NoobisCoding

как, черт возьми, я мог опубликовать свою попытку, когда я никогда не делал ни строчки в C?: D

Richard MacCutchan

Проблема точно такая же, и код для выполнения вычислений в C будет таким же, как и в C#. Все, что вам нужно добавить, - это операторы printf для отображения результатов.

User 59241

Даже ваш код c# может стать отправной точкой. Если вы хотите, чтобы кто-то сделал вашу домашнюю работу, этого не произойдет.

1 Ответов

Рейтинг:
2

CPallini

Я даю вам отправную точку:

struct Person
{
  char name[256];
  int age, height, weight;
};

int scan_line( char * line, struct Person * person)
{
  char * p = strtok( line, ";");
  if ( ! p ) return 0;
  line = strcpy(person->name, p);
  p = strtok(NULL, ";");
  if (! p ) return 0;
  person->age = atoi(p);
  p = strtok(NULL, ";");
  if (! p ) return 0;
  person->height = atoi(p);
  p = strtok(NULL, ";");
  if (! p ) return 0;
  person->weight = atoi(p);
  return 1;
}