请大师修改一C语言程序
发布网友
发布时间:2024-10-04 05:21
我来回答
共3个回答
热心网友
时间:2024-10-04 06:15
#include <stdio.h>
#include <stdlib.h>
unsigned int func(unsigned int a, unsigned int b){
int ret = 0;
unsigned int jinwei = 0;
while(a>0 && b>0) {
jinwei += (a%10 + b%10);
if(jinwei >= 10) {
jinwei = 1;
++ret;
}
else {
jinwei = 0;
}
a /= 10;
b /= 10;
}
return ret;
}
typedef struct _list{
unsigned int a;
unsigned int b;
unsigned int ret;
struct _list * next;
}list;
int main() {
unsigned int a, b;
list * header = NULL;
list *p, *q;
while(1) {
scanf("%d%d", &a, &b);
if(a==0 && b==0) {
break;
}
list *p = (list *)malloc(sizeof(list));
p->a = a;
p->b = b;
p->ret = 0;
p->next = NULL;
if(header == NULL) {
header = p;
q = header;
}
else {
q->next = p;
q = q->next;
}
}
while(header != NULL) {
header->ret = func(header->a, header->b);
printf("%d\n", header->ret);
p = header;
header = header->next;
free(p);
}
return 0;
}
/*
123 456
555 666
123 594
4545436 6585635475
0 0
*/
热心网友
时间:2024-10-04 06:13
感觉你写复杂了,给你个短一点的作参考……
#include "stdio.h"
void main(void){
char a[10],b[10],k,lna,lnb,*p,*ps;
int n1=1,n2=2;
while(n1 || n2){
printf("Type an integer...\na=");
scanf("%d",&n1);
lna=strlen(itoa(n1,a,10));
printf("Type an another...\nb=");
scanf("%d",&n2);
lnb=strlen(itoa(n2,b,10));
if(lna>lnb){
p=a+lna-1;
for(;lnb;a[--lna]+=b[--lnb]-'0');
ps=a;
}
else{
p=b+lnb-1;
for(;lna;b[--lnb]+=a[--lna]-'0');
ps=b;
}
for(k=0;p>ps;p--)
if(*p>'9'){
*p-=10;
(*(p-1))++;
k++;
}
if(*p>'9') k++;
if(n1 || n2)
printf("%d+%d=%d, The total of %d times carry operation.\n",n1,n2,n1+n2,k);
}
}
热心网友
时间:2024-10-04 06:10
#include<stdio.h>
int fun(int m,int n)
/*调用fun函数*/
{
int p,m1,n1;
int b=0;
for (p=0,m1=m,n1=n;m1*n1;m1/=10,n1/=10)
if (m1%10+n1%10+b>9){b=1;p++;}
else b=0;
return p;
}
struct num
{
int p;
num *next;
};
int main()
{
int m,n;
num *head,*temp1,*temp2;
temp1=head=new num;
while (1)
{
printf("请输入n对数(以0 0结束):\n");
while (1)
{
scanf("%d%d",&m,&n);
if (m==0&&n==0)
{
printf("需要进行加法进位数是:");
for (temp1=head->next ;temp1!=NULL;temp1=temp1->next )
printf("%d\n",temp1->p);
break;
}
else
{
temp2=new num;
temp2->next =NULL;
temp1->next=temp2;
temp1=temp2;
temp1->p=fun(m,n);
}
}
}
return 0;
}