Я не знаток Си, но несколько математических рассуждений добавлю. Если даны две противоположные вершины квадрата, то можно по теореме пифагора посчитать этот отрезок. Он будет являтся диагональю квадрата. А как известно, диагональ в квадрате со стороной а равна а*корень(2). Поэтому чтобы узнать сторону квадрата, мы полученный отрезок делим на корень из двух. Ну а далее немного надо подумать, чтобы определить, где лежат две другие вершины квадрата. Это уж вы сами
Там легко 
Codeby Academy
Практика и мастерство
От основ до продвинутого — программы для практиков Codeby.
К курсу →
- Статус
- Закрыто для дальнейших ответов.
Язык: Си
Задача: имеется текстовый файл, нужно вывести статистику этого файла: сколько в файле слов. строк, предложений.
[codebox]#include <stdio>
#include <stdlib>
FILE *f;
int s,q,w;
char c;
void main (){
s=q=w=0;
f=fopen("K:\\1.txt","rt");
if((f=fopen("K:\\1.txt","rt"))==0){
//osibka!
}
while(!feof(f)){
fscanf(f,"%c",&c);
if(c==' '){
s++;
}
if (c=='.'){
q++;
}
if(c=='\n'){
w++;
}
}
fclose(f);
printf("Slov v faile =%d \n",s);
printf("Predlojenii v faile =%d \n",q);
printf("Strok v faile =%d \n",w);
}[/codebox]
Проблема в том, что выводит все значения по нолю. Я конечно не специалист, но может кто-то может сказать где ошибка или посоветовать какое-нибудь другое решение. Заранее спасибо.
Задача: имеется текстовый файл, нужно вывести статистику этого файла: сколько в файле слов. строк, предложений.
[codebox]#include <stdio>
#include <stdlib>
FILE *f;
int s,q,w;
char c;
void main (){
s=q=w=0;
f=fopen("K:\\1.txt","rt");
if((f=fopen("K:\\1.txt","rt"))==0){
//osibka!
}
while(!feof(f)){
fscanf(f,"%c",&c);
if(c==' '){
s++;
}
if (c=='.'){
q++;
}
if(c=='\n'){
w++;
}
}
fclose(f);
printf("Slov v faile =%d \n",s);
printf("Predlojenii v faile =%d \n",q);
printf("Strok v faile =%d \n",w);
}[/codebox]
Проблема в том, что выводит все значения по нолю. Я конечно не специалист, но может кто-то может сказать где ошибка или посоветовать какое-нибудь другое решение. Заранее спасибо.
точно) заработало. Но теперь другая проблема:выводит неправильное кол-во слов. Я то впринципе понимаю почему, но как с этим бороться ?) )
Помогите пожалуйста разобраться. что то совсем запуталась, как на С++ с помощью класса записать данные в связанные списки. Либо информации подкинуть....
#include <cstdlib>
#include <iostream>
using namespace std;
class Spisok{
public:
spisok();
void Insert(int *, int);
private:
int number;
int *sPtr; // начало списка
};
Spisok::Spisok()
{
number=0;
}
void Spisok::Insert(int *sPtr, int num)
{
int *currentPtr, *previosPtr;
newPtr=new Spisok;
...........
}
int main()
{
int a=5, b=11;
Spisok value;
value.Insert(&b, a);
system("PAUSE");
return EXIT_SUCCESS;
}
#include <cstdlib>
#include <iostream>
using namespace std;
class Spisok{
public:
spisok();
void Insert(int *, int);
private:
int number;
int *sPtr; // начало списка
};
Spisok::Spisok()
{
number=0;
}
void Spisok::Insert(int *sPtr, int num)
{
int *currentPtr, *previosPtr;
newPtr=new Spisok;
...........
}
int main()
{
int a=5, b=11;
Spisok value;
value.Insert(&b, a);
system("PAUSE");
return EXIT_SUCCESS;
}
Люди!!! Очень нужна ваша помощь
Предметный указатель организован как линейный список.
Каждая компонента указателя содержит слово и номера страниц, на которых это
слово встречается. Количество номеров страниц, относящихся к одному слову, от
одного до десяти.
Составить программу, которая обеспечивает:
• начальное формирование предметного указателя;
• вывод предметного указателя;
• вывод номеров страниц для заданного слова.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок
при вводе.
структура выглядит сл. образом
мне бы хотя бы чтобы он формировался, остальное как нибудь сама дойду
Предметный указатель организован как линейный список.
Каждая компонента указателя содержит слово и номера страниц, на которых это
слово встречается. Количество номеров страниц, относящихся к одному слову, от
одного до десяти.
Составить программу, которая обеспечивает:
• начальное формирование предметного указателя;
• вывод предметного указателя;
• вывод номеров страниц для заданного слова.
Программа должна обеспечивать диалог с помощью меню и контроль ошибок
при вводе.
структура выглядит сл. образом
Код:
struct P_UKAZ
{
char *word;
int page;
P_UKAZ *next;
P_UKAZ *prev;
}
мне бы хотя бы чтобы он формировался, остальное как нибудь сама дойду
Еще вопрос! Очень нужно!
Есть 2 текстовых файла. Необходимо:
1) Смешать файлы через N строк (N вводится с клавиатуры)
2) Записать слова текста в 9 колонок
3) Найти в файле слово по фрагменту заданного образца
4) Подсчитать в файле общее количество и число разных символов
Заранее спасибо, очень надо!!!
Есть 2 текстовых файла. Необходимо:
1) Смешать файлы через N строк (N вводится с клавиатуры)
2) Записать слова текста в 9 колонок
3) Найти в файле слово по фрагменту заданного образца
4) Подсчитать в файле общее количество и число разных символов
Заранее спасибо, очень надо!!!
-выбираешь систему координат с началом в одной из данных точек квадрата и орты направлены по сторонам квадратаНарод! Помогите с задачкой!
Даны координаты двух противоположных вершин квадрата и длина его стороны. Нужно определить, принадлежит ли точка квадрату (ее координаты вводятся с клавиатуры).
Заранее спасибо.
(квадрат должен бытьв первой четверти).
-переводишь точку которую надо проверить на принадлежность в выбранную систему координат
- проверяешь принадлежность точки типа (0 < x && x < ДлинаСтороны && 0 < y && y < ДлинаСтороны)
Код:
int side; // длина стороны квадрата
vec3 p0, p1; //очки квадрата
vec3 p; // искомая точка
vec3 delta = p0; // вектор приводящий квадрат к началу координат
vec3 diag= p1 - p0;
vec3 diag45 = vec3(1,1,1);
float alpha= acos(dot_product(diag, diag45)); // угол поворота
// формируем матрицу преобразования исходной системы координат в "координаты квадрата"
mat33 mat = mat33.identity;
mat.transtlate(delta);
mat.rotate(alpha);
p = mat * p; // умножение матрицы на вектор
// тут проверка
if( (0 < p.x && p.x < side) && (0 < p.y && p.y < side) ) printf("yes");
else printf("no");
код для mat33 и vec3 былв NvidiaSDK по-моему...
Люди пожалуйста нужна ваша помощь !!!
Похожая задача уже была но у меня почемуто неполучется:
Заполнить матрицу (9х9) линейной последовательностью (1,2,3,4,5....), от центра по спирали: влево - вниз - впра-во - вверх.
Похожая задача уже была но у меня почемуто неполучется:
Заполнить матрицу (9х9) линейной последовательностью (1,2,3,4,5....), от центра по спирали: влево - вниз - впра-во - вверх.
Код:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>
#define N 9
int main()
{
int i, j, c, q, x, sign_g, sign_v;
int matrix[ N ][ N ];
memset( matrix, 0, sizeof(matrix) );
matrix[ N/2 ][ N/2 ] = 1;
for( i=N/2, j=N/2, c=0, sign_g=0, sign_v=0, step=1, q=0; c<N*N; q++ )
{
if( q == step )
{
if( sign_v )
{
sign_v = false;
for( x=0; x<step; x++ ) matrix[ i++ ][ j ] = (c++)+1;
}
else
{
sign_v = true;
for( x=0; x<step; x++ ) matrix[ i-- ][ j ] = (c++)+1;
}
goto postpl;
}
c++;
if( q == step+1 )
{
q = 0;
if( sign_g )
{
sign_g = false;
}
else
{
sign_g = true;
}
++step;
}
if( sign_g )
{
j++;
}
else
{
j--;
}
postpl:
matrix[ i ][ j ] = c+1;
}
// Showing effect
for( i=0; i<N; i++ )
{
for( j=0; j<N; j++ )
{
printf( "%4d", matrix[ i ][ j ] );
}
printf( "\n" );
}
return 0;
}
В приведенном мной примере обнаружились следующие косяки:
потерялось обьявление переменной int step;
в условие цикла for( i=N/2, j=N/2, c=0, sign_g=0, sign_v=0, step=1, q=0; c<N*N; q++ )
надо добавить -1 т.е так c<N*N-1;
Примечание: меняя значения sign_g, sign_v (0 или 1) можно менять направление спирали
Прикреплен демо файл и код от него(дополненный тот что приведен ранее)
потерялось обьявление переменной int step;
в условие цикла for( i=N/2, j=N/2, c=0, sign_g=0, sign_v=0, step=1, q=0; c<N*N; q++ )
надо добавить -1 т.е так c<N*N-1;
Примечание: меняя значения sign_g, sign_v (0 или 1) можно менять направление спирали
Прикреплен демо файл и код от него(дополненный тот что приведен ранее)
Вложения
Народ, нужна ваша помощь, сам не пишу на С, работаю с объектно-орентированными языками, а в универе дали такую задачку по компьютерной графике, а обратится больше некуда:
Так вот, стоящая вертикально плита должна двигаться вперед, назад,влево,вправа и вокруг своей оси при помощи кнопок клавы, кружок- это точечный источник света, а следовательно от плиты должно падать тень, все это должно сделано быть в кабинетной проекции.1 этап только каркас фигур со всем функционалом,2 этап фигуры уже сплошные....(желательно с комментами в коде, для меня, а не для препода)
зы: если поможете, могу вознаграждение заплатить....
Так вот, стоящая вертикально плита должна двигаться вперед, назад,влево,вправа и вокруг своей оси при помощи кнопок клавы, кружок- это точечный источник света, а следовательно от плиты должно падать тень, все это должно сделано быть в кабинетной проекции.1 этап только каркас фигур со всем функционалом,2 этап фигуры уже сплошные....(желательно с комментами в коде, для меня, а не для препода)
зы: если поможете, могу вознаграждение заплатить....
Люди! Помогите!
Есть 2 текстовых файла. Необходимо cмешать файлы через N строк (N вводится с клавиатуры)
Есть 2 текстовых файла. Необходимо cмешать файлы через N строк (N вводится с клавиатуры)
- Статус
- Закрыто для дальнейших ответов.
Поделиться: