#include<stdio.h>
/*输入一个字符,输出ASCII码值*/
int main(){
char ascii;//字符型
printf("请输入一个字符(我会输出其ASCII码值):");
scanf("%c",&ascii);
printf("其ascii码值为:%d",ascii);
return 0;
}
#include<ttdio.h>
int main(){
float x,y;
scanf("%f",&x);//float型数据输入用%f
y = pow(x,2);//调用函数在头文件math.h中
printf("%.1f",y);//保留一位小数
return 0;
}
#include<stdio.h>
int main(){
char ch,diff;
diff = 'A' - 'a';//可以用单引号''引单个字符表示其ASCII码值
scanf("%c",&ch);
if(ch >= 'a'&&ch <= 'z'){
printf("%c",ch + diff);
}
else if(ch >= 'A'&&ch <= 'Z'){
printf("%c",ch - diff);
}
else{
printf("%c",ch);
}
return 0;
}
#include<stdio.h>
int main(){
/*将摄氏度转化为华氏度*/
float f,c;
scanf("%f",&f);
c=5.0 / 9 * (f - 32); /*需要加上5.0小数点,因为计算是从右到左计算的,如果不加就会被当作整数*/
printf("%.2f",c);
return 0;
}
#include<stdio.h>
int main(){
/*简单地判断三角形*/
int a,b,c;
scanf("%d %d %d",&a,&b,&c);
if(a + b > c&&a + c > b&&b + c > a){
if(a == b&&b == c){
printf("等边三角形");
}
else if(a*a + b*b == c*c||a*a + c*c == b*b||b*b + c*c == a*a)
printf("直角三角形");
else if(a == b&&b != c||a == c&&c != b||b == c&&c != a)
printf("等腰三角形");
else if((a == b||a == c||b == c)&&(a == b&&b != c||a == c&&c != b||b == c&&c != a))
printf("等腰直角三角形");
else
printf("一般三角形");
}
else
printf("不能构成三角形");
return 0;
}
#include<stdio.h>
int main(){
int a,b,c,d,hour,minute1,minute2,e,f,time;
scanf("%d %d %d %d",&a,&b,&c,&d);
minute1 = a * 60 + b;
minute2 = c * 60 + d;
time = minute2 - minute1;
e = time / 60;
f = time % 60;
printf("%d %d",e,f);
return 0;
}
#include<stdio.h>
int main(){
/*简单的加减乘除运算器*/
float num1,num2,re;
char ch;
scanf("%f %f %c",&num1,&num2,&ch);
if(ch == '+') re = num1 + num2;
else if(ch == '-') re = num1 - num2;/*应该使用''单引号*/
else if(ch == '*') re = num1 * num2;
else if(ch == '/') re = num1 / num2;
printf("%.2f",re);
return 0;
}
{
int a,b,c;
float area,perimeter,s;
scanf("%d %d %d",&a,&b,&c);
if((a+b>c)&&(a+c>b)&&(b+c>a)){
s=(a+b+c)/2.0;//这里也需要使用小数点
area=sqrt(s*(s-a)*(s-b)*(s-c));
perimeter=2*s;
printf("area: %.2f\nperimeter: %.2f",area,perimeter);
}
else{
printf("These sides do not correspond to a valid triangle");
}
return 0;
}
#include<stdio.h>
int main(){
int sum = 0;
int n,m;
scanf("%d",&n);
int i;
for(i = 1;i<= n;i++){
sum += F(i);
}
printf("%d",sum);
return 0;
}
int F(int n){
if(n == 1||n == 2) return 0;
else if(n == 3) return 1;
else{
int re = F(n - 1) + F(n - 2) + F(n - 3);
return re;
}
} /* 0 0 1 1 2 4 7 13 24 44*/
#include<stdio.h>
int main(){
/*五分制成绩人数*/
int n,number,i;
int A=0, B=0, C=0, D=0, E=0;
scanf("%d", &n);
for (i = 1; i <= n; i++)
{
scanf("%d", &number);
if (number >= 90)
A += 1;
else if (number >= 80 && number < 90)
B += 1;
else if (number >= 70 && number < 80)
C += 1;
else if (number >= 60 && number < 70)
D += 1;
else E += 1;
}
printf("%d %d %d %d %d\n", A, B, C, D, E);
return 0;
}
这里是一个充分利用位数、除数、余数的例子,可以从根本理解进制转换运算
#include<stdio.h>
#include<math.h>
void narcissistic(int lower,int upper);
int main(){
int lower,upper;
scanf("%d %d",&lower,&upper);
narcissistic(lower,upper);
return 0;
}
void narcissistic(int lower,int upper){
int number,sum,num;
int n = 0,re = 0; /*初值化位数,余数 */
for(number = lower;number <= upper;number++){
num = number; /*初值化num,只保证number在for循环里变化*/
sum = 0; /*重置位数和 */
n = 0; /*重置位数n*/
while (num != 0){
num /= 10;
n++; /*计算位数*/
}
num = number;/*重置num不随计算改变*/
re = 0;/*重置余数 */
while (num != 0){
re = num % 10;
sum += pow(re,n);/*计算每位的和*/
num /= 10;
}
if (sum == number) printf("%d\n",number);
}
}
下面的例子也是能够帮助理解,每一位上的运算。
一个整数的“反置数”指的是把该整数的每一位数字的顺序颠倒过来所得到的另一个整数。如果一个整数的末尾是以0结尾,那么在它的反置数当中,这些0就被省略掉了。比如说,1245的反置数是5421,而1200的反置数是21。请编写一个程序,输入两个整数,然后计算这两个整数的反置数之和sum,然后再把sum的反置数打印出来。要求:由于在本题中需要多次去计算一个整数的反置数,因此必须把这部分代码抽象为一个函数的形式。
输入格式:输入只有一行,包括两个整数,中间用空格隔开。
输出格式:输出只有一行,即相应的结果。
输入样例: 435 754
输出样例: 199
#include<stdio.h>
#include<math.h>
int opp(int num);
int main(){
/*反置数的计算*/
int num1,num2,newnum1,newnum2;
int sum;
scanf("%d%d",&num1,&num2);
newnum1 = opp(num1);
newnum2 = opp(num2);
sum = newnum1 + newnum2;
printf("%d",opp(sum));
return 0;
}
int opp(int num){
int n = 0,i = 0;
int newnum = 0;
int number = num;
while(number != 0){
number /= 10;
n++;
}
i = n;
while(i >= 0){
for(i = n - 1;i >= 0;i--){
newnum += (num % 10) * pow (10,i);
num /= 10;
}
}
return newnum;
}