yashasvipathak Ответов: 4

Напишите простую программу


Напишите программу для ввода имени и номера рулона и отметок двух предметов , а затем найдите общее количество и процент, а затем распечатайте имя, номер рулона, общее количество и процент.

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

/* Program Of School */
#include <stdio.h>
void main ()
{
 char Name[50];
 Int Roll, Mark1, Mark2;
 float per;
Printf("enter the name and roll number\n");
scanf("%c %d" , &name, &Roll);
printf("enter the marks of two subject");
scanf("%d %d" , &mark1, &mark2);
sum=mark1+mark2:
per=(mark1+mark2)/2.0;
printf("the name is %c and roll mo is %d, &name, &roll number);
printf("total marks are %d and percentage are %f, &sum, &per);
getch();
}

Patrice T

А у вас есть вопрос?

4 Ответов

Рейтинг:
2

KarstenK

Для решения вашей домашней работы вам следует изучить кодирование, поэтому ознакомьтесь с документацией о scanf и printf. Вы допустили какую-то ужасную ошибку, на которую уже указывают некоторые другие ответы.

Если бы вы не установили Visual Studio сейчас и не научились пользоваться отладчиком.

Совет: скопируйте и отладьте некоторые рабочие примеры кода, чтобы понять язык C.


Рейтинг:
1

OriginalGriff

Это не сработает, если только у ваших субъектов не будет только одного имени персонажа.
Для scanf "%c" означает "прочитать один символ", поэтому, если вы наберете "mike", все это будет неудачно.
Вместо этого используйте "%s", который считывает строку, и запросите у пользователя отдельные строки данных: сначала запросите имя, прочитайте строку, затем запросите номер рулона и прочитайте его.
Я бы также предложил вам сделать то же самое "приглашение для одного элемента, а затем прочитать его" для меток - это облегчает пользователю отслеживание.


Рейтинг:
0

Jochen Arndt

Четыре проблемы:


  1. С scanf() вы должны передать указатели в качестве аргументов, чтобы получить сохраненные значения. Но с printf() вы должны передать интегральные значения, такие как int и float) по значению.
  2. То "%c" формат последовательности предназначен для одного символа. Воспользуйся "%s" для строк.
  3. Со строками (char массивы) объект уже является указателем. Таким образом, вы должны передать простое имя или адрес первого элемента (Name или &Name[0]).
  4. Ваш процентный расчет неверен. Общая формула такова 100 * part / total.


Maciej Los

5ed!

Рейтинг:
0

CPallini

Ваш програзм полон ошибок. Вы должны быть осторожны при написании C программа:

  • C чувствителен к регистру, если вы называете переменную Mark1 затем каждое ее появление должен быть написано именно так Mark1 ("марк1" - это не вариант). Точно так же существует printf функция, а не "Printf".
  • scanf берет на себя адрес из аргументов тогда как printf берет на себя ценность из аргументов.
  • Оператор завершается точкой с запятой (;) не двоеточие (':').
  • Спецификатор формата строк-это %s не "%c".
  • Вы пропустили конечную двойную кавычку спецификатора формата в последних двух случаях printf звонки

Наверняка я что-то пропустил, чтобы сообщить...
Пожалуйста, обратите внимание, что вы вычисляете средний значение двух марок, а не a процент вообще.

Попробуй
#include <stdio.h>
int main ()
{
  char name[50];
  int roll, mark1, mark2;
  int sum;
  double avg;
  printf("enter the name and roll number\n");
  scanf("%s %d" , name, &roll);
  printf("enter the marks of two subject\n");
  scanf("%d %d" , &mark1, &mark2);
  sum = mark1 + mark2;
  avg = (mark1 + mark2)/2.0;
  printf("the name is %s and roll mo is %d\n", name, roll );
  printf("total marks are %d and the average is %g\n", sum, avg);
  getchar();
  return 0;
}


Maciej Los

5ed!