Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 53 из 87<  1 ... 50  51  52  53  54  55  56 ... 87  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Код:

#include <stdio.h>

int main()
{
  unsigned int h = 0;
  unsigned int m = 0;
  unsigned int s = 0;

  int fields_successfully_read = 0;

  while ( fields_successfully_read != 3 || h > 24 || m > 60 || s > 60 )
  {
     printf("Input time in HH:MM:SS format");
     fields_successfully_read = scanf( "%u:%u:%u", &h, &m, &s );
  }

  printf("This is a correct time: %u:%u:%u", h, m, s);
}


_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)



Партнер
 

Member
Статус: Не в сети
Регистрация: 23.12.2004
Откуда: Беларусь, Минск
Спасиба!!!

_________________
ASUS A4M88T-M, Athlon II X3 425, 2GB NCP, video - internal ATI 4250, 200GB Samsung HDD, Win7 x64


 

Member
Статус: Не в сети
Регистрация: 19.12.2005
Откуда: НН
Фото: 69
Код:
#include <stdio.h>
int main()
{
    const int M = 3;
    int i, j, k;
    int A[3][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9}};
    int B[3][3] = {{10, 11, 12},{13, 14, 15},{16, 17, 18}};
    int C[3][3];

    printf("Matrix A\n");
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < M; j++)
        printf ("%d\t", A[i][j]);
        printf("\n\n");
    }

    printf("Matrix B\n");
    for (i = 0; i < M; i++)
    {
        for (j = 0; j < M; j++)
        printf ("%d\t", B[i][j]);
        printf("\n\n");
    }
    printf("Matrix A * B\n");

    for(i = 1; i < M; i++)
    for(j = 1; j < M; j++)
    for(k = 1; k < M; k++)
    C[i][j] += A[i][k]*B[k][j];

    for (i = 0; i < M; i++)
    {
        for (j = 0; j < M; j++)
        printf ("%d\t", C[i][j]);
        printf("\n\n");
    }
}

Не понимаю почему не компилируется... Ругается на C: variable "C" is used before its value is set.


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
А ты надеялся, что в ней волшебным образом окажутся нули? :)

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 19.12.2005
Откуда: НН
Фото: 69
Anoss писал(а):
А ты надеялся, что в ней волшебным образом окажутся нули?

Ага :oops: Т.е. надо ее (С) нулями сначала "забить"?


 

Member
Статус: Не в сети
Регистрация: 01.04.2005
Откуда: Москва-Лубянка
Да.

_________________
AnossovPavel в проекте F@H (TSC!Russia)
退屈な祖父 ¤ παππούς ¤ («клан дедов»)


 

Member
Статус: Не в сети
Регистрация: 21.01.2004
Откуда: ядерная помойка
или объявить массив глобально.

_________________
memento mori


 

Advanced member
Статус: Не в сети
Регистрация: 09.03.2004
Откуда: Кишинёв
ядерный отход писал(а):
или объявить массив глобально.

Лучше инициализировать переменные самому, а не надеяться на компилятор(чтобы не было вредных привычек). Один лишний memset сильно программу испортить не должен :) .


 

Member
Статус: Не в сети
Регистрация: 19.12.2005
Откуда: НН
Фото: 69
Изменил:
Код:
int C[3][3];

На:
Код:
int C[3][3] = {{0, 0, 0},{0, 0, 0},{0, 0, 0}};


Произведение двух матриц получается такое:
Код:
Matrix A * B
0       0       0

0       172     183

0       265     282

Не пойму, откуда нули то???


 

Member
Статус: Не в сети
Регистрация: 21.01.2004
Откуда: ядерная помойка
Provider писал(а):
Не пойму, откуда нули то???

В си элементы массива нумеруются по смещению от начала (то бишь с нуля).
А теперь гляди на свой цикл умножения.

_________________
memento mori


 

Member
Статус: Не в сети
Регистрация: 19.12.2005
Откуда: НН
Фото: 69
ядерный отход Ага, уже нашел ошибку ;)


 

Member
Статус: Не в сети
Регистрация: 19.12.2005
Откуда: НН
Фото: 69
Комрады, а c фортраном не поможете? :oops:
Добавлено спустя 37 минут, 4 секунды
Пытаюсь туже самую программу написать на фортране. Не знаю как сделать у нем умножение двух массивов.
Код:
program p_1

real a(3, 3)
real b(3, 3)
real c(3, 3)
integer :: i, j, k, M = 3

a(1,1)=1; a(1,2)=2; a(1,3)=3
a(2,1)=4; a(2,2)=5; a(2,3)=6
a(3,1)=7; a(3,2)=8; a(3,3)=9

b(1,1)=10; b(1,2)=11; b(1,3)=12
b(2,1)=13; b(2,2)=14; b(2,3)=15
b(3,1)=16; b(3,2)=17; b(3,3)=18

c(1,1)=0; c(1,2)=0; c(1,3)=0
c(2,1)=0; c(2,2)=0; c(2,3)=0
c(3,1)=0; c(3,2)=0; c(3,3)=0

write (*, *) ['Matrix A']
print *, a(1,1), a(1,2), a(1,3)
print *, a(2,1), a(2,2), a(2,3)
print *, a(3,1), a(3,2), a(3,3)

write (*, *) ['Matrix B']
print *, b(1,1), b(1,2), b(1,3)
print *, b(2,1), b(2,2), b(2,3)
print *, b(3,1), b(3,2), b(3,3)

do i = 0, j = 0, k = 0, 9
    c(i:j) => a(i:k)*b(k:j)
end do

end program p_1

Подскажите плиз как это правильно делается :fingal:


 

Member
Статус: Не в сети
Регистрация: 23.12.2004
Откуда: Беларусь, Минск
как получить результат выполнения консольной команды DIR в С в виде последовательности символов?
У меня клиент по именованому каналу соединяется с сервером и кидает ему CD/DIR/MKDIR а сервер соответсвенно обрабатывает это всё. Соединение и передача команд есть, теперь с сервером разбираюсь...
Добавлено спустя 6 минут, 36 секунд
точнее с мкдир я разобрался - проще некуда, а с двумя остальными что-то закопался в мсдне
Добавлено спустя 3 минуты, 59 секунд
о, и про CD (chdir) на девоид.ком.уа нашёл, остался DIR

_________________
ASUS A4M88T-M, Athlon II X3 425, 2GB NCP, video - internal ATI 4250, 200GB Samsung HDD, Win7 x64


 

Member
Статус: Не в сети
Регистрация: 01.05.2007
Откуда: Тель-Авив
Фото: 1
AzaZeo писал(а):
как получить результат выполнения консольной команды DIR в С в виде последовательности символов?

Если я правильно понял вопрос, то:

Код:
FILE *dir_output;
dir_output = popen( "dir c:", "r" );
if( dir_output ) {
    while( !(feof( dir_output ) ) {
        char entry[ 1024 ];
        fgets( entry, sizeof( entry ), dir_output );
        ...
    }
    pclose( dir_output )
}



 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Простите, что спрашиваю всякую легкотню, просто прошу глянуть проф взглядом - это так? :oops:
y = 11 * x^10 + 10 * x^9 + 9 * x^8 + ... + 2 * x + 1;
Код:
#include <stdio.h>
void main(void)
{
   int x,y,s;
   int i;
   x=3;
   int n;
   n=11;
   y=0;
   while (n>0)
   {
      s=1;
      for (i=1;i<=n-1;++i)
      {
         s=s*x;
      }
      y+=n*s;
      n=n-1;
      
   }
   printf("y=");
   printf("%d\t\n",y);
}

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 08.05.2006
Откуда: СПБ
manya
Код:
while (n>0)
   {
      s=1;
      for (i=1;i<=n-1;++i)
      {
         s=s*x;
      }
      y+=n*s;
      n=n-1;
     
   }

не вижу тут условия выхода.цикл бесконечный и ты не увидишь ответ на экране
и программа не верна.
Код:
#include <stdio.h>
void main(void)
{
   int x=3,y=1,s=0;
   int i;
   int n=11;
   for(i=1;i<n;i++)
      {
      s=(n+1)*pow(x,n);
      y+=s;
      }
   printf("y=");
   printf("%d\t\n",y);
     


P.S. точку выхода нашел)стирать лень

_________________
Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Сильно не бейте, но можно вопрос? :?: Почему моя прога не будет выводить ничего на экран и цикл бесконечный? Я проверила, она работает, причем например при х=1 она выдает 66, это правильно

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 08.05.2006
Откуда: СПБ
manya писал(а):
Сильно не бейте, но можно вопрос? :?: Почему моя прога не будет выводить ничего на экран и цикл бесконечный? Я проверила, она работает, причем например при х=1 она выдает 66, это правильно

потому что сначало не увидел точку выхода из цикла,потом увидел и написал об этом в P.S.

_________________
Мы все знаем, что Linux — это круто… он выполняет бесконечные циклы за 5 секунд.
* Линус Торвальдс


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Извините, не заметила сразу

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


 

Member
Статус: Не в сети
Регистрация: 10.12.2007
Откуда: Санкт-Петербург
Простите, это снова я :oops:
Вывести все слова, оканчивающиеся на заданную букву, если строка заканчивается на ноль. Между словами пробел. Она не работает, а я никак не могу найти ошибку((
Код:
#include <stdio.h>
#define N 100
void main(void)
{
   int b [N];
   printf("Input letter\n");
   char a;
   scanf("%c",&a);
   printf("Input phrase. The end of the phrase must be '0'  ");
   int i;
   i=0;
   int c;
   while ((c=getchar())!='0')
   {
      b[i]=c-'0';
      i+=1;
   }
   int n;
   if (b[1]!=' ')
         n=1;
   int count;
   count=0;
   for (i=0;i<(N-1);++i)
   {
      if (b[i]==' ')
         if (b[i+1]!=' ')
            n=i+1;
      if (b[i]=='c')
         if (b[i+1]==' ')
         {
            count++;
            for(int z=n;z=i-n+1;z++)
               printf("%c",b[z]);
         }
   }
   if (count==0)
      printf("There are no words ended on tat letter");
   printf("\n");

}



Добавлено спустя 9 часов 36 минут 1 секунду:
Ой, то есть вот
Код:
#include <stdio.h>
#define N 100
void main(void)
{
   int b [N];
   printf("Input letter\n");
   char a;
   scanf("%c",&a);
   printf("Input phrase. The end of the phrase must be '0'  ");
   int i;
   i=0;
   int c;
   while ((c=getchar())!='0')
   {
      b[i]=c-'0';
      i+=1;
   }
   int n;
   if (b[1]!=' ')
         n=1;
   int count;
   count=0;
   for (i=0;i<(N-1);++i)
   {
      if (b[i]==' ')
         if (b[i+1]!=' ')
            n=i+1;
      if (b[i]=='c')
         if (b[i+1]==' ')
         {
            count++;
            for(int z=n;z<=i-n+1;z++)
               printf("%c",b[z]);
         }
   }
   if (count==0)
      printf("There are no words ended on tat letter");
   printf("\n");

}


Добавлено спустя 1 час 19 минут 4 секунды:
Или вот....Чего-то я теперь вообще уже :?:
Код:
#include <stdio.h>
#define N 100
void main(void)
{
   int b [N];
   printf("Input letter\n");
   char a;
   scanf("%c",&a);
   printf("Input phrase. The end of the phrase must be '0'  ");
   int i;
   i=0;
   int c;
   while ((c=getchar())!='0')
   {
      b[i]=c-'0';
      i+=1;
   }
   int n;
   if (b[1]!=' ')
         n=1;
   int count;
   count=0;
   for (i=0;i<(N-1);++i)
   {
      if (b[i]==' ')
            n=i+1;
      if (b[i]=='c')
         if (b[i+1]==' ')
         {
            count++;
            for(int z=n;z<=i-n+1;z++)
               putchar(b[z]);
         }
   }
   if (count==0)
      printf("There are no words ended on tat letter");
   printf("\n");

}



Добавлено спустя 1 час 16 минут 39 секунд:
Или вот
Код:
#include <stdio.h>
#define N 100
void main(void)
{
   int b [N];
   printf("Input letter\n");
   char a;
   scanf("%c",&a);
   printf("Input phrase. The last word of the phrase must be '0'  ");
   int i;
   i=0;
   int c;
   while ((c=getchar())!='0')
   {
      b[i]=c-'0';
      i+=1;
   }
   int count;
   for(i=(N-1);i>=0;--i)
   {
      if ((b[i-1]=='a')&&(b[i]==' '))
      {
         count=i;
         while(b[count]!=' ')
         {
            putchar(b[count]);
            count--;
         }
      }
   }
}


Добавлено спустя 18 секунд:
И е один не работает :weep:

_________________
Семь бед, один Reset. 95, 98 - это количество багов. В пpоцентах...
DCN - наше все


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1730 • Страница 53 из 87<  1 ... 50  51  52  53  54  55  56 ... 87  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan