下面这些C语言基础算法案例都是经过测试和验证过了的,欢迎各位使用。
本文是该系列的第一篇,都是一些相对初级的算法,很适合刚开始学C语言的同学。
源代码:
输出:
CProgramming2、C语言打印用户输入的一个整数源代码:
Enterainteger:25Youentered:253、C语言实现两个整数相加源代码:
Entertwointegers:1211Sum:234、C语言实现两个小数相乘源代码:
Entertwonumbers:2.41.1Product:2.6400005、C语言查找字符的ASCII值源代码:
Enteracharacter:GASCIIvalueofG=716、C语言根据用户输入的整数做商和余数源代码:
Enterdividend:25Enterdivisor:4Quotient=6Remainder=17、C语言获取整型、单精度浮点型、双精度浮点型和字符型的长度基本语法是:
/*Thisprogramcomputesthesizeofvariableusingsizeofoperator.*/#includeintmain(){inta;floatb;doublec;chard;printf('Sizeofint:%dbytes\n',sizeof(a));printf('Sizeoffloat:%dbytes\n',sizeof(b));printf('Sizeofdouble:%dbytes\n',sizeof(c));printf('Sizeofchar:%dbyte\n',sizeof(d));return0;}输出:
注:可能会由于系统的不同出来的结果也不尽相同。
#includeintmain(){inta;longintb;/*intisoptional.*/longlongintc;/*intisoptional.*/printf('Sizeofint=%dbytes\n',sizeof(a));printf('Sizeoflongint=%ldbytes\n',sizeof(b));printf('Sizeoflonglongint=%ldbytes',sizeof(c));return0;}输出:
#includeintmain(){floata,b,temp;printf('Entervalueofa:');scanf('%f',&a);printf('Entervalueofb:');scanf('%f',&b);temp=a;/*Valueofaisstoredinvariabletemp*/a=b;/*Valueofbisstoredinvariablea*/b=temp;/*Valueoftemp(whichcontainsinitialvalueofa)isstoredinvariableb*/printf('\nAfterswapping,valueofa=%.2f\n',a);printf('Afterswapping,valueofb=%.2f',b);return0;}输出:
/*Cprogramtocheckwhetheranumberenteredbyuserisevenorodd.*/#includeintmain(){intnum;printf('Enteranintegeryouwanttocheck:');scanf('%d',&num);if((num%2)==0)/*Checkingwhetherremainderis0ornot.*/printf('%diseven.',num);elseprintf('%disodd.',num);return0;}输出1:
输出2:
Enteranintegeryouwanttocheck:1212iseven.也可以用条件运算符解决:
#includeintmain(){charc;printf('Enteranalphabet:');scanf('%c',&c);if(c=='a'||c=='A'||c=='e'||c=='E'||c=='i'||c=='I'||c=='o'||c=='O'||c=='u'||c=='U')printf('%cisavowel.',c);elseprintf('%cisaconsonant.',c);return0;}输出1:
Enteranalphabet:GGisaconsonant.也可以用条件运算符解决
输出结果和上面的程序相同。
实现1:
/*Cprogramtofindlargestnumberusingifstatementonly*/#includeintmain(){floata,b,c;printf('Enterthreenumbers:');scanf('%f%f%f',&a,&b,&c);if(a>=b&&a>=c)printf('Largestnumber=%.2f',a);if(b>=a&&b>=c)printf('Largestnumber=%.2f',b);if(c>=a&&c>=b)printf('Largestnumber=%.2f',c);return0;}实现2:
实现3:
/*CProgramtofindlargestnumberusingnestedif...elsestatement*/#includeintmain(){floata,b,c;printf('Enterthreenumbers:');scanf('%f%f%f',&a,&b,&c);if(a>=b&&a>=c)printf('Largestnumber=%.2f',a);elseif(b>=a&&b>=c)printf('Largestnumber=%.2f',b);elseprintf('Largestnumber=%.2f',c);return0;}输出结果相同:
/*Programtofindrootsofaquadraticequationwhencoefficientsareenteredbyuser.*//*Libraryfunctionsqrt()computesthesquareroot.*/#include#include/*Thisisneededtousesqrt()function.*/intmain(){floata,b,c,determinant,r1,r2,real,imag;printf('Entercoefficientsa,bandc:');scanf('%f%f%f',&a,&b,&c);determinant=b*b-4*a*c;if(determinant>0){r1=(-b+sqrt(determinant))/(2*a);r2=(-b-sqrt(determinant))/(2*a);printf('Rootsare:%.2fand%.2f',r1,r2);}elseif(determinant==0){r1=r2=-b/(2*a);printf('Rootsare:%.2fand%.2f',r1,r2);}else{real=-b/(2*a);imag=sqrt(-determinant)/(2*a);printf('Rootsare:%.2f+%.2fiand%.2f-%.2fi',real,imag,real,imag);}return0;}输出1:
Entercoefficientsa,bandc:410Rootsare:0.00and-0.2514、C语言检查是否是闰年源代码:
输出1:
Enteryear:20002000isaleapyear.输出2:
输出3:
Enteryear:20122012isaleapyear.15、C语言检查一个数是正数、负数还是零源代码:
也可以使用if-else语句
/*Cprogrammingcodetocheckwhetheranumberisnegativeorpositiveorzerousingnestedif...elsestatement.*/#includeintmain(){floatnum;printf('Enteranumber:');scanf('%f',&num);if(num<0)/*Checkingwhethernumislessthan0*/printf('%.2fisnegative.',num);elseif(num>0)/*Checkingwhethernumisgreaterthanzero*/printf('%.2fispositive.',num);elseprintf('Youenteredzero.');return0;}输出1:
Enteranumber:-12.3-12.30isnegative.输出3:
/*Cprogrammingcodetocheckwhetheracharacterisalphabetornot.*/#includeintmain(){charc;printf('Enteracharacter:');scanf('%c',&c);if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))printf('%cisanalphabet.',c);elseprintf('%cisnotanalphabet.',c);return0;}输出1:
Enteracharacter:KKisanalphabet17、C语言计算自然数的和源代码:
也可以使用for循环语句
/*Thisprogramissolveusingforloop.*/#includeintmain(){intn,count,sum=0;printf('Enteraninteger:');scanf('%d',&n);for(count=1;count<=n;++count)/*forloopterminatesifcount>n*/{sum+=count;/*sum=sum+count*/}printf('Sum=%d',sum);return0;}输出:
也可以通过if-else语句
/*Thisprogramdisplayserrormessagewhenuserentersnegativenumberor0anddisplaysthesumofnaturalnumbersifuserenterspositivenumber.*/#includeintmain(){intn,count,sum=0;printf('Enteraninteger:');scanf('%d',&n);if(n<=0)printf('Error!!!!');else{for(count=1;count<=n;++count)/*forloopterminatesifcount>n*/{sum+=count;/*sum=sum+count*/}printf('Sum=%d',sum);}return0;}18、C语言计算阶乘对于任意正数n,阶乘指的是:
如果数值是负数,那么阶乘就不存在。并且我们规定,0的阶乘就是1。
/*Cprogramtodisplayfactorialofanintegerifuserentersnon-negativeinteger.*/#includeintmain(){intn,count;unsignedlonglongintfactorial=1;printf('Enteraninteger:');scanf('%d',&n);if(n<0)printf('Error!!!Factorialofnegativenumberdoesn'texist.');else{for(count=1;count<=n;++count)/*forloopterminatesifcount>n*/{factorial*=count;/*factorial=factorial*count*/}printf('Factorial=%lu',factorial);}return0;}