第二天-运算符、控制结构
/* 编写程序,输入4个整数找出最大值和最小值。 Enter four integers: 10 8 49 35 Largest: 49 Smallest: 8 */ #include <stdio.h> #define N 4 int main(void) { int n[4]; int i,j,tmp=0; int pos; for(i = 0; i < N; i++){ scanf("%d", &n[i]);//***加&*** } /*------------mao pao----------- for(i = 0; i < N-1; i++){ for(j = 0; j < N-i-1; j++){ if(n[j] > n[j+1]){ tmp = n[j+1]; n[j+1] = n[j]; n[j] = tmp; } } } ----------------------------------*/ for(i = 0; i < N-1; i++){ pos = i; for(j = i+1; j < N; j++ ){ if(n[pos] > n[j]){ pos = j; } } if(pos != i){ tmp = n[i]; n[i] = n[pos]; n[pos] = tmp; } } for(i = 0; i < N; i++){ printf("%d ", n[i]); } printf("\nmax:%d min:%d\n", n[3], n[0]); return 0; }
/* 利用switch语句编写一个程序,把用数字表示的成绩转化为字母表示的等级。 Enter numerical grade: 84 Letter grade: B 使用下面的等级评定规则:A为90-100,B为80-89,C为70-79,D为60-69,F为0-59。 如果成绩高于100或低于0显示出错信息。提示:取成绩的十位值进行判断。 */ #include <stdio.h> int main(void) { int grade,i; scanf("%d", &grade); i = grade/10; switch(i) { case 9: printf("A\n");break; case 8: printf("B\n");break; case 7: printf("c\n");break; case 6: printf("D\n");break; default : printf("F\n");break; } return 0; }
</pre><pre code_snippet_id="428188" snippet_file_name="blog_20140716_4_9656268" name="code" class="cpp">/* 编写一个程序,确定一个数的位数: Enter a number: 374 The number 374 has 3 digits */ #include <stdio.h> int main(void) { int n,i = 0; scanf("%d", &n); do{ i++; }while((n/=10));//( (n/=10) != 0 ) printf("%d\n", i); return 0; }
/* 判断1-100的数中,共有多少个9。 如:数字19,有一个9,数字99,有两个9 */ #include <stdio.h> int main(void) { int i = 1; int k = 1; int count = 0; while(1){ if( i%10==9 ) count++; if (i/10==9 ) count++; k++; i++; if(k == 100) break; } printf("1-100 total has 9 is:%d\n", count); return 0; }
/* 编程实现整数的加法、减法、乘法、除法、取模运算(建议采用switch语句) */ #include <stdio.h> int main(void) { int a, b; char c; printf("input like:a+b or a-b or a*b or a/b\n"); scanf("%d%c%d", &a, &c, &b); switch(c){ case '+': printf("%d%c%d=%d\n", a, c, b, a+b); break; case '-': printf("%d%c%d=%d\n", a, c, b, a-b); break; case '*': printf("%d%c%d=%d\n", a, c, b, a*b); break; case '/': printf("%d%c%d=%d\n", a, c, b, a/b); break; default: break; } return 0; }
/* 将1-200间不能被3整除的数输出。(要求每行输出10个数字) */ #include <stdio.h> int main(void) { int i; int count=0; for(i = 1; i <= 200; i++){ if(i%3 != 0){ printf("%d\t", i); count++; } if(count%10 == 0){ printf("\n"); } } printf("\n"); return 0; }
/* 题目:打印出如下图案(菱形) * *** ***** ******* ***** *** * --------------------------*/ #include <stdio.h> int main(void) { int i,n,j; printf("enter a number:\n"); scanf("%d", &n); for(i = 1; i <= n*2; i++){ if(i%2 != 0){ for(j = 0; j < i; j++){ printf("*"); } printf("\n"); } } for(i = (n-1)*2; i >= 1; i--){ if(i%2 != 0){ for(j = 0; j < i; j++){ printf("*"); } printf("\n"); } } return 0; }