Armenian Knowledge Base  

Go Back   Armenian Knowledge Base > Technical sections > Languages, Compilers, Interpreters
Register

Reply
 
LinkBack Thread Tools
Old 23.06.2003, 04:24   #1
Дошкольник
 
Diane-'s Avatar
 
Join Date: 04 2003
Location: USA
Posts: 103
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Unhappy help

Guys please help.I need to write a program that inputs an integer and a character, the output of the program should be a diamond composed of character and extending the width specified by the integer.For example, if the integer is 7 and character is ' * ' , the diamond would look like this:
---- *------
---***-----
--*****----
-*******---
--*****---
---***-----
---- *------

[ -- ] is here just to make pic clear.

If the input integer is an even number , it should be increased to the next odd number.
I have to use while loop, cant use for . It must be easy for u

Any suggestions?
__________________
No se preocupe, sea feliz !
Reply With Quote
Old 23.06.2003, 05:55   #2
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

PHP Code:
int main(int argccharargv[])
{
    
int iCount;
    
std::cin >> iCount;
    
iCount 0x01 iCount : ++iCount;
    
int i 1j=  (iCount >> 1) + 1l;
    while (
k--)
    {
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
i;
        while (
l--)
            
std::cout << '*';
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
+= 2;
        
std::cout << std::endl;
    }
    
iCount >> 1;
    
iCount 2;
    while (
k--)
    {
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
i;
        while (
l--)
            
std::cout << '*';
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
-= 2;
        
std::cout << std::endl;
    }
    
////
    
return 0;

Reply With Quote
Old 23.06.2003, 06:01   #3
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

Если нужны будут комментарии - то пожалуйста.
Ее можно соптимизировать.
i.e. не вычислять 2 раза (iCount - 1) shr 1 и т.д. и т.п.
Reply With Quote
Old 23.06.2003, 09:22   #4
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally posted by Agregat
PHP Code:
int main(int argccharargv[])
{
    
int iCount;
    
std::cin >> iCount;
    
iCount 0x01 iCount : ++iCount;
    
int i 1j=  (iCount >> 1) + 1l;
    while (
k--)
    {
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
i;
        while (
l--)
            
std::cout << '*';
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
+= 2;
        
std::cout << std::endl;
    }
    
iCount >> 1;
    
iCount 2;
    while (
k--)
    {
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
i;
        while (
l--)
            
std::cout << '*';
        
= (iCount i) >> 1;
        while (
j--)
            
std::cout << ' ';
        
-= 2;
        
std::cout << std::endl;
    }
    
////
    
return 0;

хе-хе... Я тут ее немного соптимизировал , и она стала работать быстрее на треть, и размер уменьшился
Ты че туда столь циклов понапихал ?
кстати, для сравнения времени использовал функцию clock()
смотри
PHP Code:
int main(int argccharargv[])
{
    
int iCount;
    
cin >> iCount;

         
iCount 0x01 iCount : ++iCount;

    
int k = (iCount >> 1) + 1nStars 0;
    
charpch = new char[iCount 1];
    
pch[iCount] = 0;
    
memset(pch' 'iCount);
    
    for(
int i 0k; ++i)
    {
        
nStars 1;
        
memset(pch + (iCount nStars)/2'*'nStars);

        
cout << pch << endl;
    }

    
i-= 2;
    
memset(pch'*'iCount);
    
   
int nSpaces 0;
    for( ; 
>= 0; --)
    {
        
nStars 1;
        
nSpaces = (iCount nStars)/2;
        
memset(pch' 'nSpaces);
        
memset(pch + (iCount nStars)/2' ', (iCount nStars)/2);

        
cout << pch << endl;
    }

    
////
    
return 0;


Reply With Quote
Old 23.06.2003, 09:27   #5
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

Извиняюсь, конечно, но вы мудак!
Программу надо было написать только циклами while... прочти условие!
Reply With Quote
Old 23.06.2003, 09:30   #6
VIP Faraon
 
RAMZES's Avatar
 
Join Date: 09 2002
Location: Пески сахары
Age: 35
Posts: 2,895
Downloads: 6
Uploads: 0
Reputation: 0 | 0
Default

Quote:
Originally posted by Agregat
Извиняюсь, конечно, но вы мудак!
Программу надо было написать только циклами while... прочти условие!
Это не оправдывает 3 вложенных цикла
а циклы for в моем примере можно ЛЕГКО заменить на while ..
Так что господин хороший, не выпендривайтесь
Reply With Quote
Old 23.06.2003, 09:32   #7
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

Я, отнюдь, не выпендриваюсь...
Reply With Quote
Old 24.06.2003, 02:16   #8
Дошкольник
 
Diane-'s Avatar
 
Join Date: 04 2003
Location: USA
Posts: 103
Downloads: 0
Uploads: 0
Reputation: 0 | 0
Default

Rebyata spasibo bolshoe , tolko ne nado soritsya izza etgo.
ya programku napisala , tolko nemnogo uproshenee , tak kak eto nachalo kursa , tut nado pisat prostenko , a to uchitel ne poverit chto ya ee sama napisala. dlya vas ona naverno budet ochen uj"detskoi", no dlya menay ne ochen.

int main()
{
int num, counter, number, count;
char user;

cout << "Input the character you wish to use>";
cin >> user;
cout << "Enter the height and width>";
cin >> num;

if(num % 2 == 0)
num += 1;

number = num;
counter = 1;
count = 1;//number of characters

while(counter > 0)
{

if(counter != num)
{
cout << setw(number) << " ";
while(count <= counter)
{
cout << user;
count++;
}
cout << endl;
counter += 2;
number -= 1;
}

count = 1;

if(counter == num)
{
cout << setw(number) << " ";
while(count <= counter)
{
cout << user;
count++;
}
cout << endl;
num -= 2;
counter -= 2;
number += 1;
}
}


return 0;
}
Eshe raz spasibo za pomosh
Reply With Quote
Old 24.06.2003, 05:23   #9
Грустно...
 
Agregat's Avatar
 
Join Date: 08 2002
Location: Там, где всегда идут дожди
Age: 35
Posts: 21,717
Downloads: 2
Uploads: 0
Reputation: 250 | 7
Default

Пожалуйста
Reply With Quote
Sponsored Links
Reply

Thread Tools


На правах рекламы:
реклама

All times are GMT. The time now is 08:20.


Powered by vBulletin® Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.