Професионална програма
Loading...
DimovIvan avatar DimovIvan 11 Точки

"Основи на програмирането със C++"/Глава 6.1 вложени цикли-последната задача: къщичка

Защо judge не ми дава точки, при положение че програмата ми работи?

Да се напише програма, която въвежда число n (2 ≤ n ≤ 100) и печата къщичка с размери N x N, точно като в примерите.

#include<iostream>
#include<string>
#include<cmath>
using namespace std;

int main(){
int n;
cin>>n;

int star=1;
if (n%2==0){
    star++;
}
int tire=(n-star)/2;
int roofLength=ceil(n/2.0);
for (int i=0; i<roofLength; i++){
    for (int j=0; j<tire; j++){
        cout<<"_";}
    for (int j=0; j<star; j++){
        cout<<"*";}
    for (int j=0; j<tire; j++){
        cout<<"_";}
cout<<endl;
star+=2;
tire-=1;
cout<<endl;
}
int baseLength=floor(n/2.0);
for (int i=0; i<baseLength; i++){
    cout<<"|";
    for (int j=0; j<n-2; j++){
        cout<<"*";}
    cout<<"|"<<endl;
    cout<<endl;
}
return 0;
}
 

Тагове:
0
C++ Programming
RaUndreundre avatar RaUndreundre 52 Точки

Judge не ти дава точки защото кода ти има гешки и резултата ти е грешен.
Грешка 1 е "козметична". Използвал си "_" вместо "-".
Грешка 2: В кода ти има два излишни endl.
Ето го твоя код корегиран и работещ вярно:
 

#include<iostream>
#include<string>
#include<cmath>
using namespace std;

int main(){
int n;
cin>>n;

int star=1;
if (n%2==0){
    star++;
}
int tire=(n-star)/2;
int roofLength=ceil(n/2.0);
for (int i=0; i<roofLength; i++){
    for (int j=0; j<tire; j++){
        cout<<"-";}
    for (int j=0; j<star; j++){
        cout<<"*";}
    for (int j=0; j<tire; j++){
        cout<<"-";}
cout<<endl;
star+=2;
tire-=1;
}
int baseLength=floor(n/2.0);
for (int i=0; i<baseLength; i++){
    cout<<"|";
    for (int j=0; j<n-2; j++){
        cout<<"*";}
    cout<<"|";
    cout<<endl;
}
return 0;
}

 

0
DimovIvan avatar DimovIvan 11 Точки

Благодаря!

0