鱼C论坛

 找回密码
 立即注册
查看: 1911|回复: 9

[已解决]c/c++

[复制链接]
发表于 2022-4-16 11:01:02 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 18135437048 于 2022-4-16 12:58 编辑
#include<stdio.h>
int sum(char* arr){
        int sum=0;
        printf("%d\n",*arr);
        printf("%d\n",arr[0]);
        for(int i=0;arr[i]!='\0';i++){//============问题    arr[i]!='\0'   c字符串的结束标志不是\0
                sum+=*arr;
                ++arr;
        }
        return sum;
}
int main(){
        char arr[3]={'31','32','33'};
        int len=sizeof(arr)/sizeof(char);
        int result=sum(arr);
        printf("%d",result);
        getchar();
}
这样为什么不行
数组length的传递
c语言的痛:传数组必须传len,我想用str   \0试试
最佳答案
2022-4-16 11:19:43
#include<stdio.h>

int sum(int* arr,int length)
{
    int sum=0;
    printf("%d\n",*arr);
    printf("%d\n",arr[0]);
    for(int i=0; i<length; i++)
    {
        sum+=arr[i];
    }
    return sum;
}

int main()
{
    int arr[3]= {31,32,33};
    int len=sizeof(arr)/sizeof(char);
    int result=sum(arr,3);
    printf("%d",result);
    getchar();
}
不知道你想实现什么功能,这个是实现数组累加的代码,不知道你是不是要实现这个功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-4-16 11:10:30 | 显示全部楼层
++arr;
等同于
arr = arr + 1
(赋值左边不允许是常量)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 11:19:43 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
#include<stdio.h>

int sum(int* arr,int length)
{
    int sum=0;
    printf("%d\n",*arr);
    printf("%d\n",arr[0]);
    for(int i=0; i<length; i++)
    {
        sum+=arr[i];
    }
    return sum;
}

int main()
{
    int arr[3]= {31,32,33};
    int len=sizeof(arr)/sizeof(char);
    int result=sum(arr,3);
    printf("%d",result);
    getchar();
}
不知道你想实现什么功能,这个是实现数组累加的代码,不知道你是不是要实现这个功能。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 11:22:06 From FishC Mobile | 显示全部楼层
请问 char arr[3] = {'31','32','33'}; 是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 11:24:11 | 显示全部楼层
自增不是arr++吗?
不太理解
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 12:35:15 | 显示全部楼层
实现符串数组length传递,字符串累加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 12:36:43 | 显示全部楼层
zzxhh628 发表于 2022-4-16 11:19
#include

int sum(int* arr,int length)

字符串数组不是以\0结束,我不想多传len,so...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-4-16 12:39:09 | 显示全部楼层
傻眼貓咪 发表于 2022-4-16 11:22
请问 char arr[3] = {'31','32','33'}; 是什么意思?

字符自动转int,可以累加
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-4-16 13:09:13 From FishC Mobile | 显示全部楼层
#include <stdio.h>

int sum(char* arr)
{
    int sum=0;
    printf("%d,%d,%d\n",arr[0],arr[1],arr[2]);
    for(int i=0; arr[i]!='\0'; i++)
    {
        sum+=arr[i];
    }
    return sum;
}

int main()
{
    char arr[4]= {'31','32','33','\0'};
    int len=sizeof(arr)/sizeof(char);
    int result=sum(arr);
    printf("%d\n",result);
    getchar();
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2022-4-16 13:19:58 | 显示全部楼层
#include<stdio.h>
int sum(char arr[]){
        char* p=arr;
        int i;
        for(i=0;*p++!='\0';i++){
                printf("%c\n",*p);
        }
        return 0;
}
int main(){
        char arr[10]="Hello";
        int len=sizeof(arr)/sizeof(char);
        int result=sum(arr);
        printf("%d",result);
        getchar();
}
ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-5 18:34

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表