C語言入門之旅 (一)
阿新 • • 發佈:2018-12-19
特殊的迴圈語句 ,讓for迴圈開始的方法: 將sum初始化為0;或者先在迴圈體外讀第一個數 注意要先判斷再運算,避免最後一個數據發生錯誤
for(sum=0;n!=-1;)
{
sum+=n;
scanf(“%d”, n);
}
輸入x,y之間的閏年
int x, y, i;
scanf("%d %d", &x, &y);
for(i=x; i<=y; i++)
if((i%4==0&&i%100!=100)||(i%400=0))
printf("%d\t", i);
列印三角形,實心菱形 三角形,實心菱形,空心菱形
if(i>n) line=2*i-1 ; else line=i; //就可以實現對稱列印,然後用line作為進行運算的行標
do-while 迴圈 重點是明確迴圈次數
#define N 10 //符號常量,編譯時會用10代替N
利用泰勒級數求e的x次方
#include<stdio.h>
int main()
{
int i;
float x;
double sum , p;
scanf("%f", &x");
for(sum=1.0, i=1, p=1; fabs(p)>1e-8;i++)
{
p=p*x//i;
sum=sum+p;
}
printf("exp(%f)=%lf\n");
return 0;
}
求三角形面積 秦九韶公式
#include(math.h) int a, b, c; double s, d; s=(double)(a+b+c)/2; //強制 格式化 或者 s=(a+b+c)/2.0 ; S=sqrt(d)
從最高位開始拆一個數字
#include<stdio.h> int main() { int n, temp, i, d; //n為輸入的值,temp為臨時變數,i為各位數字,d為n的權 scanf("%d", &n); temp=n; d=1; while(temp>=10) { temp/=10; d*=10; } //主要是先把權找到 temp=n; while(temp>=10) { i=temp/d; temp%=d; d/=10; printf("%d\t", i); } printf("%d", temp); return 0; }
念數字
#include<stdio.h>
#include<math.h>
int main()
{
int a, b, n, m, ge, shi;
scanf("%d %d", &a, &b);
if((a<-99) || (a>99) || (b<-99) || (b>99) || (a>b)) printf("INPUT ERROR!");
else{
for(n=a; n<=b; n++) /*for迴圈中,第二個部分應該寫迴圈進行的控制條件,
不要寫成跳出迴圈的條件*/
{
if(n<0) printf("FU ");
m=fabs(n);
if(m>=10) {
shi=m/10;
if(shi==1) printf("SHI ");
if(shi==2) printf("ER SHI ");
if(shi==3) printf("SAN SHI ");
if(shi==4) printf("SI SHI ");
if(shi==5) printf("WU SHI ");
if(shi==6) printf("LIU SHI ");
if(shi==7) printf("QI SHI ");
if(shi==8) printf("BA SHI ");
if(shi==9) printf("JIU SHI ");
ge=m%10;
}
else ge=m;
if(ge==0) printf("LING\n");
if(ge==1) printf("YI\n");
if(ge==2) printf("ER\n");
if(ge==3) printf("SAN\n");
if(ge==4) printf("SI\n");
if(ge==5) printf("WU\n");
if(ge==6) printf("LIU\n");
if(ge==7) printf("QI\n");
if(ge==8) printf("BA\n");
if(ge==9) printf("JIU\n");
}
}
return 0;
}
任意給定n個整數,求這n個整數序列的和、最小值和最大值
#include<stdio.h>
int main()
{
int n, min, max, a, sum, i;
printf("Please input the number of the integers: ");
scanf("%d", &n);//注意取地址符,這個題忘了兩次
printf("Please input the integers:");
scanf("%d", &a);
sum=a;
min=a;
max=a;
for(i=1; i<n; i++) {
scanf("%d", &a);
sum+=a;
if(a>max) max=a;
if(a<min) min=a;
}
printf("The total,maximum and minimum of the integers are:%d %d %d", sum, max, min);
return 0;
}
一種加密的方法
#include<stdio.h>
int main()
{
char a;
while((a=getchar())!='\n')
{
if(a=='x') printf("a");
else if(a=='y') printf("b");
else if(a=='z') printf("c");
else if(a=='X') printf("A");
else if(a=='Y') printf("B");
else if(a=='Z') printf("C");
else printf("%c", a+3);
}
return 0;
}
確定成績等級
#include<stdio.h>
int main()
{
int score;
scanf("%d", &score);
switch(score/10)
{
case 10: if(score==100) printf("A");
else printf("The score is out of range!");break;
case 9: printf("A"); break;
case 8: printf("B"); break;
case 7:printf("C"); break;
case 6:printf("D"); break;
case 5: case 4: case 3: case 2: case 1: printf("E"); break;
case 0: if(score>=0) printf("E");
else printf("The score is out of range!");break;
default: printf("The score is out of range!");
}
return 0;
}
乘法表
#include<stdio.h>
int main()
{
int i, j, k;
for(i=1; i<=9; i++) {
for(j=1; j<=i; j++) {
k=i*j;
printf("%d*%d=%d\t", i, j, k);
}
printf("\n");
}
return 0;
}
整除與平方 3與7的公倍數
#include<stdio.h>
//#include<stdlib.h>
int main()
{
int n, a, sum;
printf("Please input an integer:");
scanf("%d", &n);
for(a=1, sum=0; a<n; a++) {
if((a%3==0) && (a%7==0)) sum+=a;
}
sum*=sum;
printf("The result is:%d", sum);
return 0;
//system("pause");
}
大小寫轉換
#include<stdio.h>
int ch1;
int main()
{
while((ch1=getchar())!='\n') { //遇到一次ch1=getchar()就會執行一次
if(ch1>='a' && ch1<='z') { //如果不加else就會使得三個if逐個執行,使得輸出幾乎2倍長度
ch1-='a'-'A';
printf("%c", ch1);
}
else if(ch1>='A' && ch1<='Z') {
ch1+='a'-'A';
printf("%c", ch1);
}
else if(ch1<'A' || ch1>'z' || (ch1>'Z'&&ch1<'a')) {
printf("%c", ch1);
}
}
return 0;
}
統計字元
#include<stdio.h>
int ch1, a, b, c, d;
int main()
{
while((ch1=getchar())!='\n') {
if(((ch1>='A') && (ch1<='Z')) || ((ch1>='a') && (ch1<='z'))) a++;
else if(ch1==32 ) b++; //空格的ASCII為32
else if((ch1>='0') && (ch1<='9')) c++; //記得加 '' 否則會識別為ASCII碼
else d++;
}
printf("The number of English characters,spaces,numbers,other characters are:%d %d %d %d", a, b, c, d);
return 0;
}
水仙花數
#include<stdio.h>
int main()
{
int n, m, a, b, c, sum;
scanf("%d", &n);
m=n;
a=m/100;
m=m%100;
b=m/10;
m=m%10;
c=m;
sum=a*a*a+b*b*b+c*c*c;
if(n==sum) printf("Yes");
else printf("No");
return 0;
}
符合要求的數字(n,m)
#include<stdio.h>
int main()
{
int n, m, a, b, c, t, sum, i;// a/m=c b是a的替補 t是a各位上的數字 sum是各位數字的平方和 c是商
a=1;
i=1;
scanf("%d %d", &n, &m);
while(a<=n){
for(b=a, sum=0;b>=10;b=b/10) //把for迴圈放在裡面,可以保證每一次都能對sum初始化
{
t=b%10;
sum+=t*t;
}
sum+=b*b;
c=a/m;
if(sum==c) {
printf("%d ",a );
if(i%5==0) printf("\n");
i++;
}
a++;
}
return 0;
}
奇偶判斷
#include<stdio.h>
int main()
{
int i, j, n, p;
scanf("%d", &n);
i=0;
j=0;
while(n!=0) {
p=n%10;
n=n/10;
if(p % 2 ==1) i++;
else j++;
}
if(i>0 && j==0) printf("odd number only!");
else if(i==0 && j>0) printf("even number only!");
else if(i>0 && j>0) printf("both!");
return 0;
}