Показать сообщение отдельно

  #9  
Старый 21.05.2009, 08:53
Suteki
Новичок
Регистрация: 18.05.2009
Сообщений: 12
С нами: 8939101

Репутация: 19
Lightbulb

Цитата:
Сообщение от Agregat  
Помогите исправить ошибки, программа компилируется, но зависает.
Задан массив. Определить, сколько раз меняется знак в данной последовательности чисел, запомнить номера позиций, в которых меняется знак.

Код:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;
int main()
{
int a[100];
int max;
int k;
int b[100];
int n;
int i;
cout<<"\nenter the size of array:";cin>>max;
for (i=0;i<max;i++)
      {
         printf("Please enter the %i element of the array:\n",i);
         scanf("%i",&a[i]);
       }
 
if (a[0]>=0)
   for(i=1;i=(n-1);i++)
         if (a[i]<0)
            if (a[i-1]>=0)
            {
                  k=k+1;
                  b[k]=i;
            }
         else if (a[i]>=0)
              if (a[i-1]<0)
              {
                         k=k+1;
                         b[k]=i;
              }
         else if (a[0]<0)
         for(i=1;n-1;i++)
         if (a[i]>=0)
         if (a[i-1]<0)
         {
                    k=k+1;
                    b[k]=i;
                    }
                    else
                    if (a[i]<0)
                    if (a[i-1]>=0)
                    {
                                k=k+1;
                                b[k]=i;
                                }
                                
for(i=0;i<k;i++)
printf("%d", b[i]);

getch();
}

Ошибки:
1)при создании цикла, как следствие входим в вечный цикл
2) нехватка фигурных скобок
3) лишний цикл и переменная.


Вот рабочий код:

PHP код:

#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <iostream>
using namespace std;


int main()
{
int a[100];
int max;
int k 0;
int b[100];
int i;

cout<<"\nenter the size of array: ";

cin>>max;

for (
i=0;i<max;i++)
      {
         
printf("Please enter the %i element of the array:",i+1);
         
scanf("%i",&a[i]);
       }
 
 for(
i=1;i<max;i++)
   {
          if (
a[i]<0)
          {
            if (
a[i-1]>=0)
            {
                  
b[k]=i;
                  
k=k+1;
            }
          }
         else
            if (
a[i-1]<0)
            {
                  
b[k]=i;
                  
k=k+1;
            }
   }
        

printf("\n\n3HaK MeH9ETC9 %d Pa3\nIHDEKCbI:"k);
for(
i=0;i<k;i++)
printf(" %d; "b[i]);

getch();
return 
0;

 
Ответить с цитированием