Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] cin и cout заменить на scanf и printf (http://forum.oszone.net/showthread.php?t=280821)

Frozen_Sky 13-04-2014 18:34 2337440

cin и cout заменить на scanf и printf
 
Всем привет. Вообщем препод придрался к коду, и требует, чтобы я cin и cout заменил на scanf и printf. Поможете? или хотя бы пример для преобразования покажите, сам постараюсь выполнить. Заранее спасибо.
Код:

#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    cout  << endl;
    unsigned int lenthOfArray=0;        //переменная длины массива
    cin >> lenthOfArray;                //считываем длину массива

    //создаем Массив
    int** Array = new int *[lenthOfArray];
    for (int i = 0; i < lenthOfArray; i++)
        Array[i] = new int [2];
 
    for(int i=0;i<lenthOfArray;i++)
    {
        Array[i][1]=0;                  //заполняем 0 количество повторов для каждого элемента
    }
    unsigned int max=0;
    cout <<  endl;
    for(int i=0;i<lenthOfArray;i++)
    {
        cin >> Array[i][0];            //считываем массив
        for(int j=0;j<i;j++)
        {
            if(Array[j][0]==Array[i][0])
                Array[i][1]++;        //увеличиваем на 1, если такой элемент уже встречался
        }
    }
   
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]>max)
            {
                max=Array[i][1];      //ищем максимальное число повторов
            }
    }
    cout  << endl;
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]==max)
            {
                cout << Array[i][0] << " ";  //выводим элементы с максимальным числом повторов
            }
    }
    getch();
   
    for (int i = 0; i < lenthOfArray; i++)
    {
        delete [] Array[i];
    }
    delete [] Array;
    return 0;
}


Prof 13-04-2014 19:00 2337464

Гуглить не пробовали? Тыц

Frozen_Sky 13-04-2014 19:08 2337470

пробовали) наткнулся на похожую статью, попробовал перевести, но выдало ошибку "Необработанное исключение в "0x0fcfe42e (msvcr100d.dll)" в "Lab4_Khudasov.exe": 0xC0000005: Нарушение прав доступа при записи "0x009c5744".". По-моему я тут намудрил, когда из cin в scanf переводил
cin >> Array[i][0]; ------> scanf ("%d", "Array[i][0]");
вот собственно сам код, отредактированный
Код:

#include "stdafx.h"
#include "conio.h"
#include "iostream"
using namespace std;
 
 
int main()
{
    printf ("\n");
    unsigned int lenthOfArray=0;        //переменная длины массива
    scanf ("%d ", &lenthOfArray);                //считываем длину массива
 
    //создаем Массив
    int** Array = new int *[lenthOfArray];
    for (int i = 0; i < lenthOfArray; i++)
        Array[i] = new int [2];
 
    for(int i=0;i<lenthOfArray;i++)
    {
        Array[i][1]=0;                  //заполняем 0 количество повторов для каждого элемента
    }
    unsigned int max=0;
    printf ("\n");
    for(int i=0;i<lenthOfArray;i++)
    {
        scanf ("%d", "Array[i][0]");            //считываем массив
        for(int j=0;j<i;j++)
        {
            if(Array[j][0]==Array[i][0])
                Array[i][1]++;        //увеличиваем на 1, если такой элемент уже встречался
        }
    }
   
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]>max)
            {
                max=Array[i][1];      //ищем максимальное число повторов
            }
    }
    printf ("\n");
    for(int i=0;i<lenthOfArray;i++)
    {
        if (Array[i][1]==max)
            {
                printf ("Array[i][0]", "");  //выводим элементы с максимальным числом повторов
            }
    }
    getch();
   
    for (int i = 0; i < lenthOfArray; i++)
    {
        delete [] Array[i];
    }
    delete [] Array;
    return 0;
}

ой...я оказывается там & подставить забыл, все заработало) теперь другая проблема
printf ("Array[i][0]", ""); //выводим элементы с максимальным числом повторов
он мне не элементы выводит, а тупо само "Array[i][0]", что тут не так?)

Prof 13-04-2014 19:14 2337477

scanf("%d", &Array[i][0]);
И вывод посмотрите.

Frozen_Sky 13-04-2014 19:21 2337478

все отредактировал, все работает, спасибо!)


Время: 20:39.

Время: 20:39.
© OSzone.net 2001-