
21.05.2009, 08:53
|
|
Новичок
Регистрация: 18.05.2009
Сообщений: 12
С нами:
8939101
Репутация:
19
|
|
Сообщение от 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;
}
|
|
|