两正整数相加!!!

kefeiyu 2004-12-04 09:13:53
两正整数相加,每个整数小于100位
我用数组实现
但从键盘输入的数 怎样跟数组对应???
c或c++都可以。
谢谢~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...全文
168 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
kefeiyu 2004-12-06
  • 打赏
  • 举报
回复
谢谢啊!
知道了~~~~~~~
是今天的竞赛题啊,可惜我代码进去了,结果没出来(汗!)
我qq 154871094
有空加我 呵呵
idler 2004-12-05
  • 打赏
  • 举报
回复
加个注释吧。。。
以下是输入处理:
for (i = 0; i < 2; i++) {
gets(buf); /* 从键盘输入一行,默认输入正确 */
/*
ptr_n[i]里的每一个单元存放一个十进制位。
注意:ptr_n[i][0]为最低位!
*/
k = 0; /* 当前存放单元指针 */
for (j = strlen(buf) - 1; j >= 0; j--) {
ptr_n[i][k] = buf[j] - '0'; /* 把字符转化为对应的十进制数 */
k++;
}
for (;k < 100; k++) { ptr_n[i][k] = 0; } /* 剩下的高位全部置0 */
}
wfhlxl 2004-12-05
  • 打赏
  • 举报
回复
一位一位地加加以一位后加向一位加上进位
cao12m 2004-12-05
  • 打赏
  • 举报
回复
哈哈是的啊偶没看清题目 没带眼镜啊不好意思啊 哈哈误解拉 是100位不是100撒哈哈这个这个。。。。偶再想想
aladar 2004-12-05
  • 打赏
  • 举报
回复
楼上误解
cao12m 2004-12-05
  • 打赏
  • 举报
回复
不知道是我思想简单还是没看懂题目意思?
二个数相加不会?数组就数组把 从键盘不能向数组输入?你平时怎么读进去的现在照样啊
#define Z 100
main()
{int a[Z],b[Z],c[Z];
int i;
char ch;
for(i=0;i<Z;i++)
{
scanf("%d,%d",&a[i],&b[i]);
if(0<a[i]&&a[i]<100&&b[i]>0&&b[i]<100)c[i]=a[i]+b[i];
printf("%d\n",c[i]);
}
}
tcdddd 2004-12-04
  • 打赏
  • 举报
回复
是这样啊
idler 2004-12-04
  • 打赏
  • 举报
回复
楼上。。。竞赛题一般明确输入测试用例没有错误
tcdddd 2004-12-04
  • 打赏
  • 举报
回复
怎么都没有对输入数据的判断呢?如果输入的是数字以外的呢,不会出现异常吗?怎么没有异常处理呢?
idler 2004-12-04
  • 打赏
  • 举报
回复
从输入到计算全包了
idler 2004-12-04
  • 打赏
  • 举报
回复
竞赛题啊。。。
接分
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main( void )
{
char buf[1024];
char ptr_n[2][101];
int i, j, k;

for (i = 0; i < 2; i++) {
gets(buf);
k = 0;
for (j = strlen(buf) - 1; j >= 0; j--) {
ptr_n[i][k] = buf[j] - '0';
k++;
}
for (;k < 100; k++) { ptr_n[i][k] = 0; }
}

k = 0;
for (i = 0; i < 100; i++) {
buf[i] = ptr_n[0][i] + ptr_n[1][i] + k;
k = buf[i] / 10;
buf[i] %= 10;
}

j = 99;
while (buf[j] == 0 && j > 0) j--;
for (i = 0; i <= j / 2; i++) {
k = buf[i];
buf[i] = buf[j - i];
buf[j - i] = k;
}
for (i = 0; i <= j; i++) {
buf[i] += '0';
}
buf[j + 1] = '\0';

printf("%s\n", buf);

system("PAUSE");
return 0;
}
lfxzm 2004-12-04
  • 打赏
  • 举报
回复
a[100]="123.............48938" count<100
pzcai 2004-12-04
  • 打赏
  • 举报
回复
楼主那里的?这是今天学校程序竞赛的第一体嘛!
pcboyxhy 2004-12-04
  • 打赏
  • 举报
回复
ft,
CSDN的Tab是8的
pcboyxhy 2004-12-04
  • 打赏
  • 举报
回复
#include<iostream.h>
#include<memory.h>
int main( int argc, char * argv[] )
{
char num1[100], num2[100];
memset(num1, 0, 100); memset(num2, 0 ,100);
cin>>num1>>num2;
int len1=strlen(num1), len2=strlen(num2), g=0,temp;
for(int i=len1/2; i<len1; i++)
temp = num1[i], num1[i] = num1[len1-i-1], num1[len1-i-1] = temp;
for(int i=len2/2; i<len2; i++)
temp = num2[i], num2[i] = num2[len2-i-1], num2[len2-i-1] = temp;
temp = len1>len2?len1:len2;
for(int i=0; i<temp; i++)
{
if(num1[i]) num1[i] -= 48;
if(num2[i]) num2[i] -= 48;
num1[i] = num1[i]+num2[i]+g;
g = num1[i]/10;
num1[i] -= g*10;
}
if(g>0) cout<<g;
for(int i=temp-1; i>=0;i--)
cout<<(int)num1[i];
}
idler 2004-12-04
  • 打赏
  • 举报
回复
提示:1e9进制,作业题自己做。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧