25 декабря 2012 25.12.12 61 1827

Нужна помощь в програмировании

+4

Всем привет)
Очень нужна помощь человека разбирающегося в СИ++.
Написал 2 проги:

Проблема: в таблице вместо значения функций выводятся нули.
КОД:
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main ()
{

float a, b, xn, xk, n, dx, dn, f, x;
clrscr();

{
printf(«Vvedite znachenie a, b, dx, dn i n\n»);
scanf("%f %f %f %f %f", &a,&b,&n,&dx,&dn);
printf(«Vvedite granitsi intervala xn xk \n»);
scanf("%f %f", &xn,&xk);
x=xn;
n=n;
printf("------------------------------------------------\n");
printf("| n | x | f(x) |\n");
printf("------------------------------------------------\n");
while(x<=xk)
{
if (x>0)
f=sin(x)*sin(fabs(b)*x);
else
f=a*pow(x,2)*sin(x);
printf("| %5d | %5.2f | %5.2f |\n",n,x,f);
x=x+dx;
n=n+dn;
}
printf("________________________________________________\n");
printf(" \n");
printf(«Dlya vixoda nazmite 1\n»);
scanf(" ");
}
}

Проблема: вообще не запускается.
Задание: Дан массив A из 10 элементов и массив B из 10 элементов. Сформировать массив C
из 20 элементов по следующей схеме:
C1=A1
C2=B1
C3=A2
C4=B2
КОД:
#include<stdio.h>
#include<math.h>
#include<conio.h>
int main()
{

int i;
float a[10], b[10], c[20];
clrscr();
printf(«Vvedite massivi a i b\n»);
for (i=0; i<10; i++);
{
scanf("%f", &a[i]);
}
for (i=0; i<10; i++);
{
scanf("%f", &b[i]);
}
printf(«vichislenie:\n»);
for(i=0; i<20; i++)
c[2*i]=a[i];
c[2*i+1]=b[i];
{
printf («c[%1d]=%7.2f\n», i,c[i]);
}
printf(«Vvedite luboi symbvol i najmite ENTER\n»);
scanf(" ");
return 0;
}

Спасайте народ информатик злобный человек и не дает подсказок: С


Лучшие комментарии

у массива С при вычислении за границу объявленного размера вроде как уходит. До 10 цикл сделай.
ЗЫ: синтаксиса СИ++ аще не знаю, шарю только на школьном уровне в паскале.
Ну дак ты поменял? помогло? кстати, там даже не на 10 надо. Хотя я щас припоминаю, что слышал, что (ну и намутил предложеньице) в С++ нет таких строгих ограничений по типу и размеру как в паскале, но это на правах давно услышанной недомолвки. И тебе бы лучше на специализированные ресурсы обратится) А так, хорошо хоть для начала сам попытался составить прогу, а то я сам учусь на информационника и пол группы тупо херней мается:3
Вроде бы вместо
for(i=0; i<20; i++)
c[2*i]=a[i];
c[2*i+1]=b[i];
{
printf («c[%1d]=%7.2f\n», i,c[i]);
}

Должно быть
for(i=0; i<10; i++)
{
c[2*i]=a[i];
c[2*i+1]=b[i];
}
for(i=0; i<20; i++)
{
printf («c[%1d]=%7.2f\n», i,c[i]);
}
#include <stdio.h>
#include <math.h>
#include <conio.h>
int main ()
{

float a, b, xn, xk, n0, n, dx, dn, f, x;
clrscr();

{
printf(«Vvedite znachenie a, b, dx, dn, n \n»);
scanf("%f %f %f %f %f", &a,&b,&dx,&dn,&n);
printf(«Vvedite granitsi intervala xn xk \n»);
scanf("%f %f", &xn,&xk);
x=xn;
n0=1;
printf("------------------------------------------------\n");
printf("| n | x | f(x) |\n");
printf("------------------------------------------------\n");

while(x<=xk)
{
if (x>0)
f=sin(x)*sin(fabs(b)*x);
else
f=a*pow(x,2)*sin(x);
printf("| %5.0f | %5.2f | %5.2f |\n",n0,x,f);
x=x+dx;
n0=n0+dn;
}

printf("________________________________________________\n");
printf(" \n");
printf(«Dlya vixoda nazmite 1\n»);
scanf(" ");
}
}

Только я так и не поняла, зачем ты вводишь dx и dn, почему n и dn — вещественные, и почему ты выбрал именно цикл while, да ещё и с таким условием?
Ты же i умножаешь на два. вот он уже при i=10 пытается ввести b[i] в 21 ячейку массива С. Вроде это, чисто если так рассуждать. В паскале такие ошибки он сам говорит, что выходит за пределы, а в С++ я хз как.
Сёма, не паникуй. Иди выпей чайку, а потом вспомни, что ты уже эту шутку 2 раз прокручиваешь.
Да он ваще ниче не пишет вот в чем дело.
Кароче поправил часть кода теперь вот что

На спец ресурсах всем до фени.
Это будет шикарно мен.
Но желательно реализация в том коде который я выложил.
Теперь с табуляцией… условие можно поподробнее?
Ща посмотрим, мне просто легче заново сделать было :)
Читай также