如果要按照题目那样,需要把两个数字转换为数组,然后依次乘
何不转换思路?
1+2+3 =6
4+5 = 9 
6*9 = 54
 #include <stdio.h>
// 计算数字各位之和
int digit_sum(int num) {
    int sum = 0;
    num = num < 0 ? -num : num; // 处理负数(根据题意可省略)
    while (num > 0) {
        sum += num % 10;  // 取末位
        num /= 10;        // 移除末位
    }
    return sum;
}
int main() {
    int a, b;
    scanf("%d %d", &a, &b);
    printf("%d", digit_sum(a) * digit_sum(b));
    return 0;
} #include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
    char a[10],b[10];
    while(scanf("%s %s\n",&a,&b)!=EOF){
        int lena=strlen(a);
        int lenb=strlen(b);
        int sum=0;
        for(int i=0;i<lena;i++){
            for(int j=0;j<lenb;j++){
                sum+=(a[i]-'0')*(b[j]-'0');
            }
        }
        printf("%d\n",sum);
    }
    return 0;
} C++的时候直接用string来定义,用size来确定大小,都是用[i]来表示某一个字符 #include <cstdio>
#include <iostream>
#include <string>
using namespace std;
int main(){
    string a,b;
    while(cin>>a>>b){
        int sum=0;
        for(int i=0;i<a.size();i++){
            for(int j=0;j<b.size();j++){
                sum+=(a[i]-'0')*(b[j]-'0');
            }
        }
        printf("%d\n",sum);
    }
    return 0;
} #include<stdio.h>
#include<string.h>
int main(){
	char s1[11];
	char s2[11];
	while(scanf("%s %s",s1,s2)!=EOF){
		int sum=0;
		for(int i=0;i<=strlen(s1)-1;i++){
			int temp1=s1[i]-48;
			for(int j=0;j<=strlen(s2)-1;j++){
				int temp2=s2[j]-48;
				sum+=temp1*temp2;
			}
		}
		printf("%d",sum);
		printf("\n");
	}
}