① 大一c語言:用數組設計一個20位長整數,並實現用這個長整數進行加法或減法運算。 急求啊
//這是肢信我之前寫的一個大整數的加減乘的程序,先輸入兩個數的各位的值
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
voidputin(int*x,int*y,inta,intb)
{
inti;
for(i=0;i<a;i++)
{
printf("輸入x[%d]:",i);
scanf("%d",&x[i]);
}
for(i=0;i<b;i++)
{
printf("輸入y[%d]:",i);
scanf("%d",&y[i]);
}
}
voidjiafa(int*x,int*y,int*z,int*c,inta,intb)
{
inti,j;
z[0]=(x[0]+y[0])%10;
c[0]=(x[0]+y[0])/10;
for(i=1,j=1;i<a;i++,j++)
{
if(j<b)
{
z[i]=(x[i]+y[j]+c[i-1])%10;
c[i]=(x[i]+y[j]+c[i-1])/10;
}
elseif(i==b)
{
z[i]=x[i]+c[b-1];
}
elsez[i]=x[i];
}
if(c[i-1]!=0)
{
z[i]=c[i-1];
}
elsez[i]=0;
}
voidchengfa(int*x,int*y,int*z,int*c,inta,intb)
{
inti,j;
int*t=(int*)malloc(sizeof(int)*b*(a+b));
int*c1=(int*)malloc(sizeof(int)*(a+b));
int*p=(int*)malloc(sizeof(int)*(a+b));
for(i=0;i<a+b;i++)
c1[i]=0;
for(i=0;i<b;i++)
for(j=0;j<a+b;j++)
t[i*(a+b)+j]=0;
for(j=0;j<b;j++)
{
for(i=0;i<a;i++)
{
if(i==0)
{
t[j*(a+b)+i]=(x[i]*y[j]+c[0])%10;
c[i]=(x[i]*y[j]+c[0])/10;
}
else
{
t[j*(a+b)+i]=(x[i]*y[j]+c[i-1])%10;
c[i]=(x[i]*y[j]+c[i-1])/10;
}
}
if(c[i-1]!=0)
t[j*(a+b)+i]=c[i-1];
}
for(i=0;i<b;i++)
for(j=0;j<i;j++)
{
for(intk=a+b-1;k>0;k--)
t[i*(a+b)+k]=t[i*(a+b)+k-1];
t[i*(a+b)+0]=0;
}
jiafa(t+0*(a+b),t+1*(a+b),z,c1,a+b,a+b);
for(i=2;i<b;i++)
{
for(j=0;j<a+b;j++)
p[j]=z[j];
jiafa(p,t+i*(a+b),z,c1,a+b,a+b);
}
}
voidjianfa(int*x,int*y,int*z,int*c,inta,intb)
{
inti,j;
x[0]>塵握=y[0]?c[0]=0:c[0]=-1;
z[0]=(x[0]-y[0]+10)%10;
for(i=1,j=1;i<a;i++,j++)
{
if(j<b)
{
x[i]>=y[j]?c[i]=0:c[i]=-1;
z[i]=(x[i]-y[j]+c[i-1]+10)%10;
}
elseif(j==b)
{
z[i]=x[i]+c[j-1];
}
elsez[i]=x[i];
}
}
voidprint(int歷兄輪*x,int*y,int*z,inta,intb,intc)
{
inti;
for(i=0;i<c-a;i++)
printf("");
for(i=a-1;i>=0;i--)
printf("%d",x[i]);
printf(" ");
for(i=0;i<c-b;i++)
printf("");
for(i=b-1;i>=0;i--)
printf("%d",y[i]);
printf(" ");
for(i=c-1;i>=0;i--)
printf("-");
printf(" ");
for(i=c-1;i>=0;i--)
printf("%d",z[i]);
printf(" ");
}
voidmain()
{
intlengtha=5,lengthb=4,i;
//printf("輸入數組a和b的長度(a的長度大於b的長度):");
//scanf("%d%d",&lengtha,&lengthb);
int*a=(int*)malloc(lengtha*sizeof(int));
int*b=(int*)malloc(lengthb*sizeof(int));
int*sum=(int*)malloc((lengtha+1)*sizeof(int));
int*c=(int*)malloc((lengtha)*sizeof(int));
int*cha=(int*)malloc(lengtha*sizeof(int));
int*ji=(int*)malloc((lengtha+lengthb)*sizeof(int));
for(i=0;i<lengtha;i++)
{
a[i]=i+2;
b[i]=i+2;
c[i]=0;
}
a[lengthb]=9;
/*
printf("輸入%d個數組a的元素:",lengtha);
for(i=0;i<lengtha;i++)
scanf("%d",&a[i]);
printf("輸入%d個數組b的元素:",lengthb);
for(i=0;i<lengthb;i++)
scanf("%d",&b[i]);
*/
putin(a,b,lengtha,lengthb);
jiafa(a,b,sum,c,lengtha,lengthb);
printf("加法: ");
print(a,b,sum,lengtha,lengthb,lengtha+1);
jianfa(a,b,cha,c,lengtha,lengthb);
printf("減法: ");
print(a,b,cha,lengtha,lengthb,lengtha);
chengfa(a,b,ji,c,lengtha,lengthb);
printf("乘法: ");
print(a,b,ji,lengtha,lengthb,lengtha+lengthb);
}
② 求大神用C語言編程 求兩個整數的最大值的代碼
#include<stdio.h>
int main()
{
int a,b,max;
printf("請輸入兩個整數:");
scanf("%d,%d",&a,&b);
if(a>b)
{
max = a;
}
else
{
max = b;
}
printf("較大的數是:%d",max);
return 0;
}
簡潔的語言
C語言包含的各種控制語句僅有9種,關鍵字也只有32個,程序的編寫要求不嚴格且以小寫字母為主,對許多不必要的部分進行了精簡。實際上,語句構成與硬體有關聯的較少,且C語言本身不提供與硬體相關的輸入輸出、文件管理等功能,如需此類功能,需要通過配合編譯系統所支持的各類庫進行編程,故c語言擁有非常簡潔的編譯系統。
以上內容參考:網路-c語言
③ c語言編程:輸入一個很大的整數n(n<100),輸出n各位數字之和 ,利用字元串實現
思路:輸入字元串,從字元串的第一個位置開始依次把每個數字字元轉成整數,並計算其累加和。
參考代碼:
#include"stdio.h"
#include"string.h"
intmain(){
chara[100];
inti,sum=0;
gets(a);
for(i=0;a[i]!='