0 / 0 / 1
Регистрация: 11.01.2015
Сообщений: 10

Ввод/вывод через printf() и scanf()

19.01.2015, 21:11. Показов 3307. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как правильно заменить вывод и ввод с cout/cin на printf() и scanf()?
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <string.h>
#include <iostream>
#include <string>
#include <stdio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
void Sortirovka(char **a); 
void Vivod(char **a);
 
void (*aa)(char**);   // указатель на функцию
 
       
       
     
 
int main ()
{
    int j,i;
     char **a = new char*[31];
     for (i=0; i<31; i++)
        a[i]=new char[30];
 
    cout<< "Vvedite slova ";
    cout <<endl;
    for (i=0;i<30;i++)
    {
        cout<< "Vvedite slovo # "<<i+1<<" : ";
        cin >> a[i] ; 
    }
    aa=&Sortirovka; 
    (*aa)(a);
    aa=&Vivod; 
    (*aa)(a);
        system("pause");    
        
    return 0;
}
 
void Sortirovka(char **a) //Сортировка списка
{
    int j,i;
    for(i=29;i>=1;i--)
        for(j=0;j<i;j++)
        {
            
            if (a[j][0] > a[j+1][0])
            {
            a[31] = a[j];
            a[j] = a[j+1];
            a[j+1] = a[31];
            }
 
            if (a[j][0] == a[j+1][0])
            {
             if (a[j][1] > a[j+1][1])
                {
                 a[31] = a[j];
                 a[j] = a[j+1];
                 a[j+1] = a[31];
                }
            }
        }
 
}
 
void Vivod(char **a) //Сортировка списка
{
    int i;
    
    for (i=0;i<30;i++)
    {
        cout<< "Slovo # "<<i+1<<" : "<< a[i] << endl;
    }
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2015, 21:11
Ответы с готовыми решениями:

Тип long long и его ввод\вывод с использованием scanf\printf
Добрый день! Мне в программе надо вывести и ввести, соответственно, некоторые данные с помощью scanf и printf. По сути у меня выглядит...

Записать через printf и scanf
Помогите переписать код через printf и scanf #include &lt;iostream&gt; #include &lt;cstdlib&gt; int mul( int a, int b ) { if( !b )...

Не работает программа через printf и scanf
Нужно написать программу, которая бы выводила таблицу через printf и scanf, которые бы находились в циклах и данные заносились бы в массивы...

2
Модератор
Эксперт С++
 Аватар для zss
13759 / 10954 / 6487
Регистрация: 18.12.2011
Сообщений: 29,212
19.01.2015, 22:02
Обратите внимание на исправления в сортировке.
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
61
62
63
64
//#include <string.h>
#include <stdio.h>
#include <conio.h>
 
void Sortirovka(char **a); 
void Vivod(char **a);
void (*aa)(char **a);   // указатель на функцию
 
int main ()
{
    int i;
    char **a = new char*[30];
     for (i=0; i<30; i++)
        a[i]=new char[100];
    printf("Vvedite slova\n");
    for (i=0;i<30;i++)
    {
        printf("Vvedite slovo #%d:",i+1);
        scanf("%s",a[i]); 
    }
    aa=&Sortirovka; 
    (*aa)(a);
    aa=&Vivod; 
    (*aa)(a);
    for (i=0; i<30; i++)
        delete[] a[i];
    delete[] a;
    getch();    
    return 0;
}
 
void Sortirovka(char**  a) //Сортировка списка
{
    int j,i;
    for(i=29;i>=1;i--)
        for(j=0;j<i;j++)
        {
            if (a[j][0] > a[j+1][0])
            {
                char* t= a[j];
                a[j] = a[j+1];
                a[j+1] = t;
            }else if (a[j][0] == a[j+1][0])
            {
               if (a[j][1] > a[j+1][1])
               {
                 char* t = a[j];
                 a[j] = a[j+1];
                 a[j+1] = t;
               }
            }
        }
 
}
 
void Vivod(char **a) //Сортировка списка
{
    int i;
    
    for (i=0;i<30;i++)
    {
        printf("Slovo #%d: %s\n",i+1,a[i]);
    }
}
1
0 / 0 / 1
Регистрация: 11.01.2015
Сообщений: 10
22.01.2015, 21:25  [ТС]
Спасибо! С этой программой разобрался.
Можете помочь с этой программой!? Та же проблема, только , как я понимаю, посложнее решение.
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <string.h>
#include <iostream>
#include <string>
#include <stdio.h>
 
using std::cout;
using std::cin;
using std::endl;
 
int main ()
{
    struct TAM
    {
        char date[10];
        int key ;
        char fir[16];
        int sum,st; 
        float sb;
    } inf[100];
 
    FILE  *rstr;
    rstr = fopen ("c:\\my_file.txt", "w+");
 
    int kol,i,j,m,t,sum,kod,sr[100];
    char fir0[12],fir1[10],fir2[18],fir3[11],fir4[12],fir5[14];
    char h[2];
    cout<< "Vvedite kolichestvo dogovorov : ";
    cin >> kol ;
    cout <<endl;
    for (i=0;i<kol;i++)
    {
        cout<< "Vvedite daty dogovora: ";
        cin >> inf[i].date ; 
        cout<<"Vvedite  nomer dogovora: ";
        cin >> inf[i].key;
        cout<< "Vvedite nazvanie firmi: ";
        cin >> inf[i].fir;
        cout<<"Vvedite summu dogovora (y.e.): ";
        cin >> inf[i].sum;
        cout << "Vvedite procent sbora (%): ";
        cin >> inf[i].st;
        inf[i].sb=inf[i].sum*inf[i].st/100;
        cout <<endl;
        sr[i]=i;
    }
    
 
    for(i=kol-1;i>=1;i--)
        for(j=0;j<i;j++)
        {
            if (inf[sr[j]].key > inf[sr[j+1]].key)
            {
            sr[80] = sr[j];
            sr[j] = sr[j+1];
            sr[j+1] = sr[80];
            }
        }
         
 
    for (i=0;i<kol;i++)
    {
        fprintf (rstr, "%10s ", inf[sr[i]].date); 
        fprintf (rstr, "%8d ", inf[sr[i]].key); 
        fprintf (rstr, "%16s ", inf[sr[i]].fir); 
        fprintf (rstr, "%8d ", inf[sr[i]].sum); 
        fprintf (rstr, "%8d ", inf[sr[i]].st); 
        fprintf (rstr, "%8.2f\n", inf[sr[i]].sb);
    }
 
    fclose (rstr);
    rstr = fopen ("c:\\my_file.txt", "rt");
    cout << "Data      |"<<"Nomer   |"<<"Firma           |"<<"Summa   |"<<"Sbor(%) |"<<"Sbor(y.e.) |"<<endl;
    
    for (i=0;i<kol;i++)
    {
        fgets(fir0,12,rstr);
        fgets(fir1,9,rstr);
        fgets(fir2,18,rstr);
        fgets(fir3,10,rstr);
        fgets(fir4,11,rstr);
        fgets(fir5,12,rstr);
        printf(fir0);
        printf(fir1);
        printf(fir2);
        printf(fir3);
        printf(fir4);
        printf(fir5);cout<<endl;
    }
    cout<<endl;
    fclose (rstr);
        system("pause");    
        
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2015, 21:25
Помогаю со студенческими работами здесь

Перепишите мой код через scanf printf
Замените cin cout на scaf print правильно #include &lt;cmath&gt; #include &lt;vector&gt; #include &lt;iostream&gt; #include &lt;stdio.h&gt; using...

Файловый ввод/вывод с использованием scanf();
Дан текстовый файл с числами. Следует заполнить массив int arr; числами из файла input.txt. Для этого требуется использовать scanf();...

Ввод\вывод одномерного массива (printf)
Одномерный массив x с 4-мя элементами Ввод идет нормально, а вот вывод - всегда 0, в чем проблема? #include &lt;stdio.h&gt; ...

Ввод данных через scanf без перехода на новую строку, используя пробел
Нужно ввести двумерный массив так, чтобы каждый символ вводился на этой же строке нажатием клавиши &quot;пробел&quot;. Это возможно как-то...

Ввод строки в структуре, заданной как char *str через scanf (ПОМОЩЬ)
struct {char *str;} A; scanf(&quot;%s&quot;, &amp;A.str); Аварийное завершение программы после ввода. Если задавать вручную значение внутри...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

Новые блоги и статьи
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru