iam new to c program и сталкиваются с трудностями в отладке программ. В нижеприведенном тестовом примере кода 2 не работает. Я обнаружил, что ошибка заключается в чтении interger n во втором тестовом случае. пожалуйста, мне с ГПУ этим issue.Also пожалуйста рекомендовать меня с некоторыми инструментами, которые могут быть UEd для отладки программ с использованием terminal.Thanks помощиtestcase не работает в c-программе
#include <stdio.h>
#include <stdlib.h>
int read(){
int r = 0;
char c = getchar_unlocked();
while(c >= '0' && c <= '9'){
r = r*10 + c - 48 ;
c = getchar_unlocked();
}
return r;
}
void main(){
int t = 0;
t = read();
int rr = 0;
for(rr = 0;rr < t;rr++){
int i,n = 0;
n = read();
int *p = (int *)calloc(n,sizeof(int));
for(i = 0;i < n;++i){
*(p+i) = getchar_unlocked() - 48;
}
int no,nz = 0;
for(i = 0;i < n;++i){
if(*(p+i) == 0){nz += 1;}
if(*(p+i) == 1){no += 1;}
}
int k = 0;
if(((no)%2 == 0) && ((nz)%2) == 0){
k = -1;
}
if(((no)%2 == 0) && ((nz)%2) == 1){
k = 0;
}
if(((no)%2 == 1) && ((nz)%2) == 0){
k = 1;
}
if(((no)%2 == 1) && ((nz)%2) == 1){
k = 1;
}
int result = 0;printf("%d\n",5556);
if(k == 1){
for(i = 0;i < n;++i){
if(*(p+i) == 1){
result = i+1 ;
break;
}
}
}
if(k == 0){
for(i = 0;i < n;++i){
if(*(p+i) == 0){
result = i+1 ;
break;
}
}
}
printf("%d\n",result);
}
}
Что такое тест 2? Какую платформу вы используете? –
iam с использованием gcc linux и i реализованы тестовые примеры, использующие для loop.here testcase 2 означает вторую итерацию цикла for. –
Каков ваш вклад и ожидаемый результат? Вы можете использовать 'gdb' для отладки в linux. –