2017-06-11 5 views
0

versuchen zu lernen C Ich bin mit diesem festgefahren: Ich versuche, eine quadratische Funktion zu schreiben, die auf dem Bildschirm ein gefülltes Quadrat mit Größe und Füllzeichen vom Benutzer gewählt werden sollte. Also schrieb ich dies:Kann Funktionsausgabe nicht verstehen (C)

#include <stdio.h> 

int squared (int side, char fillCharacter); 

int main(){ 
    int side; 
    char fillCharacter; 

    printf("Enter the side "); 
    scanf("%d", &side); 

    printf("Enter the character "); 
    scanf("%c", &fillCharacter); 

    printf("%d%c",squared(side, fillCharacter)); 
} 

int squared (int side, char fillCharacter){ 
    for (int row=1 ; row <= side; row++){ 
     for (int i =1; i <= side; i++){ 
     printf("%c", fillCharacter); 

     } 
    puts(""); 

    } 
} 

Aber leider die Ausgabe dieses Scan nicht einmal für den Charakter und druckt nur einen leeren Raum

Enter the side 2 
Enter the character 

ich ändern Dinge ausprobiert, aber ich machte es noch schlimmer also, wenn jemand könnte mir einen Hinweis geben, ich würde es wirklich schätzen. Vielen Dank.

+2

Ihre Funktion gibt nichts zurück und Sie rufen sie in ein printf auf, das ein int und ein char erwartet. –

+1

bitte versuchen Sie dies: 'scanf ("% c ", & fillCharacter);' (setzen Sie ein Leerzeichen vor% c) –

+1

Um eine ganze Zahl einzugeben, geben Sie einen Wert (sagen '2'), und drücken Sie die Eingabetaste. '% c' nimmt diese Eingabetaste als Zeichen auf (und es ist ein Leerzeichen). – Peter

Antwort

0

Dies ist mit this problem verknüpft. Diese Antwort bietet eine Lösung, aber Sie können sie einfach reparieren, indem Sie die Anrufe für scanf umkehren: zuerst das Zeichen und dann die Nummer.

Verwandte Themen