Значение пустое, но присвоение показывает значение
<pre lang="C#">#include<stdio.h> #include<stdlib.h> #include<string.h> main() { char* newme(char* input1); char newi[100],data[100]="10,10,5,2,2,3,1,14,25"; strcpy(newi,newme(data)); //printf("%s"); return 0; } char* newme(char* input1) { int Data[10],i=0; float A,B,C,D,E,F,G,H,I; char seps[]=","; char* token; char input2[25]; strcpy(input2,input1); printf("%s",input2); token=strtok(input2,seps); while(token!=NULL) { Data[i]=atoi(token); token=strtok(NULL,seps); printf("%f",i) ;i++; } A=Data[0];B=Data[1];C=Data[2];D=Data[3];E=Data[4];F=Data[5];G=Data[6];H=Data[7];I=Data[8]; printf("%f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f",Data[0],Data[1],Data[2],Data[3],Data[4],Data[6],A,B,C,D,E,F,G,H,I) ;return input2; }</pre>
Выход массива данных равен 0.000, но выход букв "A-I" - это значение, переданное функции.
Здесь значения Data[] при печати не содержат никаких значений, но при присвоении другим переменным содержат значение, почему это так ?
Заранее спасибо
Что я уже пробовал:
Типы данных были изменены, но результат остался прежним
[no name]
Научитесь использовать свой отладчик, и вы, вероятно, узнаете это сами. Я даже не собираюсь пытаться разобраться в этом беспорядке кода.
Erebus_22
Отладчик показывает правильное значение, но функция печати не печатает правильное значение, почему это так
[no name]
На самом деле вернитесь назад, Запустите свой код в отладчике и узнайте. Я не собираюсь пытаться отлаживать ваш код для вас. Мне пришлось бы потратить слишком много времени, просто пытаясь заставить его скомпилироваться, чтобы он работал.