Форум программистов, компьютерный форум CyberForum.ru

срочно экзамен... - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.60
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 13:47     срочно экзамен... #1
1. Сумма цифр трехзначного числа кратна 7, само число также делится на 7. Найти все такие числа.


2. Создать двумерный массив (5х5) и вывести максимальную и минимальную сумму элементов строк. Результат записать в файл.


3. Убрать из строки все указанные символы и уменьшить ее до необходимого размера.
Результат записать в файл.


написать нужно на Си
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.06.2011, 13:47     срочно экзамен...
Посмотрите здесь:

Экзамен по С C++
экзамен по с++ C++
C++ Экзамен
C++ Экзамен
срочно экзамен C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 13:55     срочно экзамен... #2
1)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int sum(int k){
    int result = 0;
    while (k){
        result += k%10;
        k /= 10;
    }
    return result;
}       
int main(){
    int i;
    for (i = 100; i <= 999; ++i)
        if (sum(i)%7 == 0 && i % 7 == 0) printf("%d ",i);
    return 0;
}
2) как матрицу заполнять
3) что значит уменьшить до необходимого размера? Задается размер, и, если строка его превышает, то отсекаются лишние символы с конца?
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:00  [ТС]     срочно экзамен... #3
как нибудь реши)))) а то я уже нервничаю
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 14:02     срочно экзамен... #4
Боюсь, что если я решу как-нибудь, то преподы оценят, но не поймут
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:06  [ТС]     срочно экзамен... #5
блин)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 14:08     срочно экзамен... #6
Цитата Сообщение от Kizuru Посмотреть сообщение
чет 1 задание не работает, проога запускаеться но не чего не выводит)
Так попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
int sum(int k){
        int result = 0;
        while (k){
                result += k%10;
                k /= 10;
        }
        return result;
}               
int main(){
        int i;
        for (i = 100; i <= 999; ++i)
                if (sum(i)%7 == 0 && i % 7 == 0) printf("%d ",i);
        getch();
        return 0;
}
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:12  [ТС]     срочно экзамен... #7
Цитата Сообщение от diagon Посмотреть сообщение
Так попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
#include <conio.h>
int sum(int k){
        int result = 0;
        while (k){
                result += k%10;
                k /= 10;
        }
        return result;
}               
int main(){
        int i;
        for (i = 100; i <= 999; ++i)
                if (sum(i)%7 == 0 && i % 7 == 0) printf("%d ",i);
        getch();
        return 0;
}
работает спс

Добавлено через 2 минуты
Цитата Сообщение от diagon Посмотреть сообщение
1)
2) как матрицу заполнять
как угодно
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 14:13     срочно экзамен... #8
3)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(){
    char ch,str[100];
    int newlen;
    printf("Enter string:\n");//введите строку
    fgets(str,100,stdin);
    printf("Enter symbol: ");//введите символ
    scanf("%c",&ch);
    while (char * x = strchr(str,ch))
        while (*x = *(x+++1));  //сочувствую преподам.
    puts(str);
    printf("Enter new size of string: ");//введите новый размер строки
    scanf("%d",&newlen);
    str[newlen] = 0;
    puts(str);
    getch();
    return 0;
}
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:17  [ТС]     срочно экзамен... #9
Цитата Сообщение от diagon Посмотреть сообщение
3)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <string.h>
#include <conio.h>
int main(){
    char ch,str[100];
    int newlen;
    printf("Enter string:\n");//введите строку
    fgets(str,100,stdin);
    printf("Enter symbol: ");//введите символ
    scanf("%c",&ch);
    while (char * x = strchr(str,ch))
        while (*x = *(x+++1));  //сочувствую преподам.
    puts(str);
    printf("Enter new size of string: ");//введите новый размер строки
    scanf("%d",&newlen);
    str[newlen] = 0;
    puts(str);
    getch();
    return 0;
}
тоесть юзер вводит строку и вводит символ который нужно удалить из строки, та ячейка в массиве просто там где символ просто удаляеться как то так...
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
22.06.2011, 14:17     срочно экзамен... #10
Цитата Сообщение от Kizuru Посмотреть сообщение
2. Создать двумерный массив (5х5) и вывести максимальную и минимальную сумму элементов строк. Результат записать в файл.
Изврат, хе-хе
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include<stdlib.h>
#include<stdio.h>
#include<time.h>
#define n 5
main()
{
      int a[n][n];
      int i,j,s=0,min=200,max=0;
      char fname[]="D:\\Max&min.txt";
      FILE *fp; 
       fp = fopen(fname,"a");
      srand(time(NULL));
      printf("Random matrix:\n\n");
      for(i=0;i<n;i++)
       { for(j=0;j<n;j++)
         { a[i][j]=rand()%20;
           printf(" %3i",a[i][j]);
         }
       printf("\n\n");
       }
      printf("\n\nSumma strok: ");
      for(i=0;i<n;i++)
      { s=0;
       for(j=0;j<n;j++)
      s+=a[i][j];
      if(s<min)
      min=s;
      if(s>max)
      max=s;
      printf(" %i",s);
      }
      printf("\n%i %i",min,max);
      fprintf(fp,"Max & min = %i %i ",max,min);
      fclose(fp);
      printf("\n\nMax & min zapisani v file!!!");
      system("pause");
}
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:18  [ТС]     срочно экзамен... #11
и если можно без сканф и принтф, а син и сиаут)
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 14:21     срочно экзамен... #12
2)
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
int main(){
    srand (time(0) );
    int matrix[5][5], i, j, sum, maxsum = 0;
    printf("Random Matrix:\n");
    for (i = 0; i < 5; ++i){
        for (j = sum = 0; j < 5; ++j){
            printf("%d ",(matrix[i][j] = rand()% 100) );
            sum += matrix[i][j];
        }
        if (sum > maxsum) maxsum = sum;
        printf("\n");
    }
    printf("Sum - %d",maxsum);
    getch();
    return 0;
}
Цитата Сообщение от Kizuru Посмотреть сообщение
написать нужно на Си
cи-ин и си-аут - это с++
И переделать элементарно
тоесть юзер вводит строку и вводит символ который нужно удалить из строки, та ячейка в массиве просто там где символ просто удаляеться как то так...
Юзер вбивает строку, вбивает символ, который надо удалить, прога ему показывает строку без этого символа.
Юзер вводит новый размер строки, и если строка больше этого символа, то лишние символы отсекаются, и строка снова выводится.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
22.06.2011, 14:25     срочно экзамен... #13
diagon, во второй нужно найти макс и мин сумм каждой строки и записать в файл.
Цитата Сообщение от diagon Посмотреть сообщение
И переделать элементарно
Что оч. затруднит нашего ТС
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
22.06.2011, 14:26     срочно экзамен... #14
Цитата Сообщение от Nursik77 Посмотреть сообщение
diagon, во второй нужно найти макс и мин и записать в файл.

Что оч. затруднит нашего ТС
Про минимум забыл, запись в файл делается с помощью одной строки.
2) переделанный
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
using std::cout;
int main(){
        freopen("файлик.тхт","r",stdin);
        srand (time(0) );
        int matrix[5][5], i, j, sum, maxsum = 0, minsum = 501;
        std::cout << "Random Matrix:\n";
        for (i = 0; i < 5; ++i){
                for (j = sum = 0; j < 5; ++j){
                        std::cout << (matrix[i][j] = rand()% 100);
                        sum += matrix[i][j];
                }
                if (sum > maxsum) maxsum = sum;
                if (sum < minsum) minsum = sum;
                cout << '\n';
        }
        сout << "Min - " << minsum << "\nMax - " << maxsum;
        return 0;
}
В 3й задаче уберите conio.h и getch() и поставьте после int main()
C++
1
freopen("файлик.txt","r",stdin);
А дальше проявляйте свою студенческую смекалку и выкручивайтесь сами.
-=ЮрА=-
Заблокирован
Автор FAQ
22.06.2011, 14:45     срочно экзамен... #15
Вот простой код по генерации массива случайных чисел и скриншот работы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <stdlib.h> //srand
#include <stdio.h>
#include <time.h>
 
int ** mass;
int * summ;
 
void main()
{
    srand(time(0));
    printf("Vvedite chislo strok\r\n");
    int m;scanf("%d",&m);
    mass = new int *[m];
    summ = new int[m];
    printf("Vvedite chislo stolbcov\r\n");
    int n;scanf("%d",&n);
    int smax = 0, smin = 0, imax, imin;
    printf("Ishodni massiv\r\n");
    for(int i = 0,j; i < m; i++)
    {
        summ[i] = 0;
        mass[i] = new int [n];
        for(j = 0; j < n; j++)
        {
            printf("%d\t",mass[i][j] = rand());
            summ[i] += mass[i][j];
        }
        printf("\r\n");
    }
    smax = summ[(imax = 0)];
    smin = summ[(imin = 0)];
    for(i = 1; i < m; i++)
    {
        if(smax < summ[i])
            smax = summ[(imax = i)];
        if(summ[i] < smin)
            smin = summ[(imin = i)];
    }
    printf("Stroka s max summoi elementov %d, ih summa %d\r\n",imax,smax);
    printf("Stroka s min summoi elementov %d, ih summa %d\r\n",imin,smin);
    printf("vvedite luboe chislo\t");scanf("%d",&i);
}
Миниатюры
срочно экзамен...  
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:48  [ТС]     срочно экзамен... #16
мне не нужно заполнение мне нужно знать как записать результат в файл)
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
22.06.2011, 14:50     срочно экзамен... #17
Kizuru, а мой вариант не айс?
Kizuru
0 / 2 / 0
Регистрация: 18.06.2011
Сообщений: 25
22.06.2011, 14:54  [ТС]     срочно экзамен... #18
а как то кроме fprintf можно запиисать:? например fputs и тд
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
22.06.2011, 14:58     срочно экзамен... #19
Я не знаю аналогов fprintf в с++.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.06.2011, 15:08     срочно экзамен...
Еще ссылки по теме:

C++ Экзамен.
C++ помогите пожалуйста решить задачу, срочно - экзамен
Определить иерархию классов для варианта "тест, экзамен, выпускной экзамен, испытание" C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
22.06.2011, 15:08     срочно экзамен... #20
Удаление символов из строки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <windows.h>
#include <stdio.h>
 
char * get_text(char * str, char ch_end,int &sLen);
char * str_del_char(char * str, char ch_del);
char * str_text = (char *) malloc(sizeof(char));
char * symbols = (char *) malloc(sizeof(char));
 
void main()
{
back:
    int sLen = 0;
    printf("ENTER INPUT STRING\r\n");
    str_text = get_text(str_text, '\n',sLen);
    printf("ENTER SYMBOLS WHITCH MUST BE DELETED\r\n");
    printf("Note: these symbols must be entered as single string\r\n");
    symbols = get_text(symbols, '\n',sLen);
    int n_smb = strlen(symbols);
    for(int i = 0; i < n_smb; i++)
        str_text = str_del_char(str_text, symbols[i]);
    printf("STRING WITHOUT SYMBOLS\r\n");
    printf("\t%s\r\n",str_text);
    printf("PRESS NUM1 TO ENTER NEW STRING\r\n");
    scanf("%d",&i);
    if(i == 1)
        goto back;
}
 
char * get_text(char * str, char ch_end,int &sLen)
{
    if(str)
    {
        sLen = 0;
        while((str[sLen] = getchar()) != ch_end)
            str = (char *)realloc(str, 
            (1 + (sLen = sLen + 1))*sizeof(char));
        str[sLen] = '\0';
    }
    return str;
}
 
char * str_del_char(char * str, char ch_del)
{
    int sLen, iPos, nCount;
    if(str)
    {
        char * chBuf = strchr(str,ch_del);
        while(chBuf)
        {
            sLen = strlen(str);
            iPos = strlen(chBuf);
            nCount = iPos - 1;
            iPos = sLen - iPos;
            memcpy(&str[iPos],&str[iPos + 1],nCount);
            str[sLen - 1] = '\0';
            chBuf = strchr(str,ch_del);
        }
    }
    return str;
}
Миниатюры
срочно экзамен...  
Yandex
Объявления
22.06.2011, 15:08     срочно экзамен...
Ответ Создать тему
Опции темы

Текущее время: 02:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru