第二天-运算符、控制结构
/*
编写程序,输入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;
}