Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.05.2011, 16:49   #1
Trackman
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 3
По умолчанию Ошибка типа cannot convert `float*' to `float' for argument `1' ...

Здравствуйте. Возник вопрос, который не могу решить. Прошу помощи .
компилятор выдает такие ошибки
1)cannot convert `float*' to `float' for argument `1' to `float summa(float, float)'
2) cannot convert `float*' to `float' for argument `1' to `float vidsv(float, float)'



Если нетрудно, укажите пожалуйста, что не так, и что поменять..
с уважением..
код программы:
Код:
#include <stdio.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>


float vidsv(float a, float b);
//float viduk(float *a, *b);
float summa(float a, float b);               
float rezsv(float a, float b);               
int main(){
struct student{
               char name[20];
               char uzv[20];
               float atz[9];
               float sv[9];
               float vid[9];
               float rez[9];
               float sum[9];
               
               }std[9];
    int i,sk,st,j;
    printf("Ievadiet eksamenu skaitu: ");
scanf("%d", &sk);
    printf("Ievadiet Studentu skaitu: ");
    scanf("%d",&st);

    
    for (i=0;i<st;i++)
    {printf("\n Ievadiet %d studenta vardu: ",i+1);
    scanf("%s",&std[i].name);
    printf("\n Ievadiet %d studenta uzvardu: ",i+1);
    scanf("%s",&std[i].uzv);
        for (j=0;j<sk;j++)
         {  
                     printf("\n     Ievadiet %d studenta atzimi par %d eksamenu: ",i+1,j+1);
                     scanf("%f",&std[i].atz[j]);   
                     printf("\n       Ievadiet %d eksamena svaru: ",j+1);
                     scanf("%f",&std[i].sv[j]);
                     }
    }
    
    for (i=0;i<st;i++)
    {
        for(j=0;j<sk;j++)
          {
            std[i].rez[j]=rezsv(std[i].atz[j], std[i].sv[j]);   
            std[i].sum = std[i].sum + summa(std[i].sum, std[i].rez[j]);   -- здесь 1 ошибка        
                         
                         }
        
        
         std[i].vid = vidsv(std[i].sum, sk); -- 2 ошибка
        }
   
    
    for (i=0;i<st;i++)
    {
        printf("\n %d Studenta vards: %s\n  Uzvards: %s\n ",i+1,std[i].name,std[i].uzv);
         for (j=0;j<sk;j++) {
             
             printf(" atzime par %d eks: %.2f",j+1,std[i].atz[j]);
             printf(" rezultejosa atz: %.2f", std[i].rez[j]);
        
        } 
       printf("\n Studenta %d videja atzime: %.2f",i+1,std[i].vid);
       }
getch();
   return 0;
       }               
       
float rezsv(float a, float b)
       {
    float c;
    c = a*b;             
     return c;
     }
     
float summa(float a, float b)
{
     float c;
     c = a+b;
     return c; 
      
      
      }
float vidsv(float a, float b)
{
     float c;
     c = a/b;
     return c; 
      }
Trackman вне форума Ответить с цитированием
Старый 23.05.2011, 17:01   #2
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,120
По умолчанию

Trackman

[i]std[i].sum = std[i].sum + summa(std[i].sum, std.rez[j]); -- здесь 1 ошибка

у тебя sum - это массив из 9 элементов, и его никак нельзя передать в функцию вместо одного float
Rififi вне форума Ответить с цитированием
Старый 23.05.2011, 17:05   #3
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

std[i].sum -- судя по описанию структуры, массив.
Соответственно, ты пытаешься передать в функцию не вещественное число, которое эта функция ожидает, а массив -- не что иное, как указатель.
Со второй ошибкой то же самое.
Как исправить -- думай сам, в зависимости от того, что именно тебе надо получить.
Латышским языком, увы, не владею -)

Update
Не успел, опередили -)
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 23.05.2011, 17:09   #4
Trackman
Новичок
Джуниор
 
Регистрация: 23.05.2011
Сообщений: 3
По умолчанию

Спасибо, понял ошибку
Trackman вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сложение 2 переменных типа float? sVasilich Visual C++ 7 22.06.2010 10:55
FLOAT TO TRING И STRING TO FLOAT!! MelKiY_bad C++ Builder 6 07.05.2010 14:31
сортировка чисел типа float дядя Общие вопросы C/C++ 2 23.05.2009 12:11
Точность типа float HunterMan Общие вопросы C/C++ 6 07.02.2009 23:05