Такое задание (язык Cи, не С++) Моих скудных знаний хватило на такой код, который по идее должен работать, но на практике висит: Code: #include <stdio.h> #include <conio.h> void main () { int i=0; int Enter = 13; int num=0; int x=0; int u; int f; int mas[10][10]; int bl[10] clrscr(); struct spisok { char imya [10]; char pol ; int rost ; int group ; }group[10]; while (num<10) { printf ("\nvvedite imya\n"); while (i<10) { group[num].imya [i] = getch(); if (group[num].imya [i] == Enter) break; printf ("%c", group[num].imya [i]); i++; } while (i<10) { group[num].imya[i] = 0; i++; } i=0; u=0; printf("\nVVedite rost\n"); scanf ("%d",&group[num].rost); fflush (stdin); printf("\nVVedite gruppy\n"); scanf ("%d",&group[num].group); fflush (stdin); printf ("vvedite pol M/J\n"); group[num].pol = getch(); printf ("%c",group[num].pol); printf ("\nsledyshii student\n"); x= getch(); if (x=='n') break; num++; } i=0; u=0; while (i<10) { f=group[i].group; if (mas[f][u]!=0) {u++;continue;} mas[f][u]=group[i].rost; i++; u=0; } f=0; while (f<10) { while(i<10) { while (u<10) { if (i==u) u++; if (mas[f][i]==mas[f][u]) bl[i]++; u++; } i++; } f++; } i=0; while (i<10) { if (bl[i]==0) i++; continue; printf ("v gruppe %d %d chelovek odinakovogo rosta",i,bl[i]); } } Помогите, пожалуйста, довести прогу до ума.. Учеба вся неплохо идет, кроме проги..
velvetdust Code: while (i<10) { if (bl[i]==0) i++; continue; printf ("v gruppe %d %d chelovek odinakovogo rosta",i,bl[i]); } Цикл бесконечный получается, если десять раз подряд в массиве bl не будут нули
VirtualAlloc Есть структура моя их на страницу виртуальной памяти 128 штук умещается код какбы рабочий но одно но когда в функции add условие идет на 2 ветку, где при заполнении страници нужно выделить новую страницу, она невыделяется посмотрите что нетак. Там скорее всего lpPtr+=dwPageSize; вроде все как мсдн даже написал а первый параметр в вирт аллок выходит что неправельный%( я непому почему что нетак... Code: #include <windows.h> #include <stdio.h> // for printf #include <stdlib.h> // for exit #include <conio.h> #include <string.h> #include <iostream.h> #define PAGELIMIT 80 // ask for this many pages LPTSTR lpNxtPage; // address of the next page to ask for DWORD dwPages = 1; // count of pages gotten so far DWORD count=0; DWORD count2=0; DWORD dwPageSize; LPVOID lpvBase; DWORD lpPtr; struct list { char dt[20]; int x; int y; int v; }; list * arr; void add(int val1, int val2,int val3, char *val4){ if(((count2+1)%128)!=0){ strcpy(arr[count].dt, val4); arr[count].x= val1; arr[count].y= val2; arr[count].v= val3; count++; count2++; printf ("On saime page # %d.\n", dwPages); }else{ lpPtr+=dwPageSize; arr=(list*)VirtualAlloc((LPVOID)lpPtr,dwPageSize,MEM_COMMIT,PAGE_READWRITE); if (arr == NULL ){ printf("VirtualAlloc failed\n"); } else { printf ("Allocating another page.\n"); }; strcpy(arr[count].dt, val4); arr[count].x= val1; arr[count].y= val2; arr[count].v= val3; dwPages++; count++; count2=0; printf ("On new page ¹ %d.\n", dwPages); } }; int main(int argc, char *argv[]) { SYSTEM_INFO sSysInfo; GetSystemInfo(&sSysInfo); // initialize the structure printf ("This computer has page size %d.\n", sSysInfo.dwPageSize); printf ("size of struct %d.\n", sizeof(list)); dwPageSize = sSysInfo.dwPageSize; arr=(list*)VirtualAlloc(NULL,PAGELIMIT*dwPageSize,MEM_RESERVE,PAGE_READWRITE); arr=(list*)VirtualAlloc(NULL,dwPageSize,MEM_COMMIT,PAGE_READWRITE); lpPtr=(DWORD)arr; printf("vvedite znachenie, stroku, stolbec, tip\n"); int a,b,c; char tipp[20]; cin>>a>>b>>c>>tipp; for (int f=0; f<130; f++){ add(a,b,c,tipp); }; cout<<arr[130].x<<arr[130].y<<arr[130].v<<arr[130].dt; system("PAUSE"); return 0; }
Помогите, пожалуйста, с задачкой. Взята она с сайта с олимпиадными задачами https://www.spoj.pl/problems/MRECAMAN/ Суть её следующая. Последовательность Recaman-а определена так: a0 = 0 Для m, больших 0: a(m) = a(m-1) - m, если эта разность больше нуля и её до этого момента в последовательности не было; a(m) = a(m-1) + m, иначе. Вот первые несколько членов последовательности: 0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9... Задание состоит в том, чтобы по введённому порядковому номеру k вывести k-ый член последовательности. Вообще, эту задачу мне нужно сдать на Хашкеле, но пока что я хочу сдать её на другом языке, который я знаю чуть получше (ruby, C). И возникла проблема с придумыванием алгоритма, поскольку решение в лоб (в смысле, просто переписать рекуррентное соотношение, ну и добавить поиск по массиву для проверки, встречалось ли число в последовательности ) не годится для больших k (0 <= k <= 500000). Буду очень признателен, если подскажете эффективное решение данной задачи.
Здравствуйте товарищи! Помогите пожалуйста сделать програмку для курсовика. Итак нужно: 1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин: A(-2;1) B(1;4) C(4;0) D(2;-1). 2) Найти узловые неизвестные T(Xi,Yi) по заданному распределению температуры вдоль границы области T(X,Y)=X+2XY+2(X^2)-2(Y^2). Вычислить максимальную абсолютную погрешность полученных результатов. 3) Построить семейство изотерм. Очень желательно на C#, но можно и на C++ Буду очень признателен!!!
Голову ломаю ... ребята, поможите ? 1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами. 2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой). Мало верится что эту тему посещают, но всёже надеюсь ...
пишу на С++ Builder. Программа должна пинговать разные адреса, а также делать преобразование из числового адреса в буквенный и обратно. Командной строкой пользоваться нельзя (так бы,конечно,использовал nslookup или tracert). Как мне это получить? Для пинга использовал IdIcmpClient, но вроде у него нет таких методов и свойств для связи и dns...подскажите,пожалуйста...
Помогите сделать задание (делфи,консоль),кто реально сделает её с комментариями и объяснит то в долгу не останусь,оплачу работу над ней 10 раз сгенерировать красно-черное дерево из 1000 случайных узлов, подсчитать среднее количество "поворотов", необходимое для построения такого дерева, среднюю дистанцию между корнем и внешним узлом. Объяснить результаты. P.S. можно написать в ПМ либо icq 195810065
Кому не лень, нужно написать на C несколько консольных программ, сегодня днем сдавать...: 1. Написать программу, которая проверяет, является ли введенная строка двоичным числом. 2. Необходимо составить три программы, которые должны реализовывать задание с помощью одного из трех циклов языка Си. Задать: матрица М размерностью 6х8, вектор В размерностью 8. Сложить поэлементно строки матрицы с вектором. Найти количество положительных элементов в полученной матрице. Не знаю я С к сожалению, а сдавать надо)
Ded MustD!e Code: #include<stdio.h> #include<string.h> int main() { char *st; int n,flag=1; gets(st); n=strlen(st); for(int i=0; i<n; i++){ if(st[i]!='1'&&st[i]!='0'){ flag=0; break; } } printf("\n%s\n",flag==1?"Binary":"Not binary"); return 0; } может кривовастенько реализовал, но работает.. компилятор BC 3.1
Code: #include<stdio.h> #include<conio.h> #include<stdlib.h> void main() { clrscr(); int M[6][8], B[8],i,j,s=0; printf("M :\n"); for(i=0; i<6; i++){ for(j=0; j<8; j++){ M[i][j]=rand()%20-10; printf("%2d ",M[i][j]); B[j]=rand()%20-10; } printf("\n"); } printf("\nB: "); for(i=0; i<8; i++) printf("%2d ",B[i]); //summa printf("\n\n"); for(i=0; i<6; i++){ for(j=0; j<8; j++){ M[i][j]+=B[j]; printf("%3d ",M[i][j]); if(M[i][j]>0) s++; } printf("\n"); } printf("\nPolojit elementov : %d",s); getch(); }
Ну вообщем есть объект такой TStringList называется! У него есть методы LoadFromFile, SaveToFile, еще есть метод LoadFromStream если файл занят! У него есть свойства Count - колво элементов, есть свойство Strings[index] - доступ к отдельным элементам. Нумерация идет с нуля, последний - N-1! Вот я тебе в принципе все рассказал что нужно чтоб твой тест сделать! 0_0
помогите пожалуйста с заданием на чистом С 1) Геометрия. Задано n точек на плоскости. Построить дерево с вершинами в данных точках так, чтобы была минимальной суммарная длина его рёбер. 2) Грамматики, языки и автоматы. Задано множество правил подстановки вида v(i)->w(i), где все v(i) и w(i) - слова одной и той же длины. Определить, можно ли перевести одно заданное слово в другое последовательным применением заданных правил подстановки. Например, если имеются правила подстановки ba->ab, cb->bc, ca->ac, то слово cbba переводится в слово abbc следующим образом: cbba->cbab->cabb->acbb->abcb->abbc.
Давно пора. Потому что тут уже под словом "помогите" понимается "сделайте за меня а я сдам" своих усилий 0. Лучше уж за "$" чем за "+".