我有一个这个结构的数组:
typedef struct
{
char dni[9];
char nombre [100], apellido [100];
double monto_adeudado;
} t_datos;
Run Code Online (Sandbox Code Playgroud)
我需要将整个数组复制到另一个数组中,但有这个限制:如果两个或多个值具有相同的dni值,则只将一个对象输出到结果数组中,并且值monto_adeudado将是具有相同dni值的所有元素的总和.我写了一些代码,但它没有正常工作,只有当两个值具有相同的dni值时它才能正常工作.我将"0"设置dni为我已经添加的元素的值.
int main()
{
int i = 0, x = 0, y = 0, ret = 1;
t_datos arr[3];
t_datos aux[3];
char *b = "0";
for(i = 0; i < 3; i++)
{
for(x = i + 1; x < 3; x++)
{
ret = strcmp(arr[i].dni, arr[x].dni);
if(ret == 0)
{
aux[y] = arr[i];
aux[y].monto_adeudado …Run Code Online (Sandbox Code Playgroud) 我有一个关于这个代码的问题,我正在写一个练习.我要检查字符串是否是回文.我无法更改函数的声明.当所有字母相同时(例如"aaaa"),函数只返回1,但如果我用其他回文(如"anna")充电,则函数返回0,我无法弄清楚为什么会出现这种情况.谢谢!
char* cargar (char*);
int pali (char*);
int main()
{
char*texto=NULL;
texto=cargar(texto);
int res=pali(texto);
if(res==1){printf("\nPalindrome");}
else printf("\nNot palindrome");
return 0;
}
char* cargar (char*texto)
{
char letra;
int i=0;
texto=malloc(sizeof(char));
letra=getche();
*(texto+i)=letra;
while(letra!='\r'){
i++;
texto=realloc(texto,(i+1)*sizeof(char));
letra=getche();
*(texto+i)=letra;}
*(texto+i)='\0';
return texto;
}
int pali (char* texto)
{
int i;
for(i=0;*(texto+i)!='\0';i++){
}i--;
if(i==0||i==1){return 1;}
if(*texto==*(texto+i)){
return pali(++texto);
}
else return 0;
}
Run Code Online (Sandbox Code Playgroud)