У меня есть эта функция, которая превратит массив символов (то есть строку) в прямоугольный треугольник. Он работает, но затем продолжает работать даже после остановки массива. Таким образом, вывод всегда содержит много лишних строк пробела.
и если слово достаточно длинное, в конце этого пробела появятся случайные символы. Вероятно, это связано с тем, что пустое пространство вышло за пределы массива размером 100. Я не знаю, что это вызывает. Я пытался установить условия для счетчика и printf, которые создают новую строку, но это просто полностью ломает код. Я думал, что это определенно printf для новых строк, но теперь, после попытки, это не похоже на это. Кто-нибудь видит, что не так?
Ниже приведена удаленная функция из моего кода.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define clear system("cls")
#define pause system("pause")
void triangulate(char stringArray[]){
int i,j,len = 0;
int counter=0;
len=strlen(stringArray);//a function library function that returns the length
printf("\n");
for(i=1;i<=len;++i){
for(j=1;j<=i;++j){
printf("%c",stringArray[counter]);
counter++;
}
printf("\n");
}
printf("len:%i counter:%i",len, counter);
pause;
}//end triangulate()
counter
и какое значение оно имеет изначально? - person Filipe Gonçalves   schedule 02.02.2014stringArray[j]
- person Kurt Pattyn   schedule 02.02.2014counter++
наif(++counter == len) counter = 0;
- person BLUEPIXY   schedule 02.02.2014