计算机专升本代码练习
第一题:给定一个百分制成绩A,B,C,D,E
90分以上的为A,80-89的为B,70-79的为C,60-69的为D,60分以下为E
#include <stdio.h>
int main(){
float n; //n表示成绩
scanf("%f",&n); //键盘输入成绩
switch((int)(n/10)){ //switch(表达式){} 表达式只能为 整数
case 10:
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:
case 0: printf("E"); break;
}
return 0;
}
第二题:给出一个不多于5位的正整数,要求分别输出每一位的数字
#include <stdio.h>
int main(){
int n;
int ge,shi,bai,qian,wan;
printf("请输入一个不大于100000的正整数:");
scanf("%d",&n);
wan = n/10000;
qian = n%10000/1000;
bai = n%1000/100;
shi = n%100/10;
ge = n%10;
printf("万位=%d,千位=%d,百位=%d,十位=%d,个位=%d,",wan,qian,bai,shi,ge);
return 0;
}
第三题:输入一行字符,分别统计英文字母,空格,数字和其他字符的个数
#include <stdio.h>
int main(){
//拿出第一个字符,判断,拿出第二个字符,判断。。。
//利用循环解决
int english=0,blank=0,figure=0,other=0; //分别统计个数
char ch; //对拿出来的单个字符进行存储
char a[]={"I come from China!!!123"};
for(int i=0;(ch=a[i])!='\0';i++){
if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z'){
english++;
}else if(ch>='0'&&ch<='9'){
figure++;
}else if(ch==' '){
blank++;
}else{
other++;
}
}
printf("英文字母:%d,空格:%d,数字:%d,其他字符:%d",english,blank,figure,other);
return 0;
}
第四题:
如果一个数恰好等于它的因子之和,这个数就是“完数”,例如:6的因子为1,2,3 6=1+2+3,因此6就是“完数”,编程求1000之内的所有完数
#include <stdio.h>
int main(){
//对2求因子,对3求因子,对4求因子。。。
//2/1 3/1 3/2 4/1 4/2 4/3.。。。
//双层循环
//因子求和,和原数进行比较
int sum; //因子之和
for(int i=2;i<1000;i++){ //原数
sum=0; //为什莫在里边设置sum=0? 每次内层循环进行相比较时,会改变sum的值,当重新进来一个数,sum重置
for(int j=1;j<i;j++){
if(i%j==0){
sum= sum+j;
}
}
if(i==sum){
printf("%d\n",i);
}
}
return 0;
}
第五题:求一个3*3矩阵的对角线元素的和
#include <stdio.h>
int main(){
// 对角矩阵的元素行下标与列下标相等,并且每行只有一个
int sum=0;
int a[3][3]={{12,34,45},
{32,44,99},
{10,30,12}};
for(int i=0;i<=2;i++){
sum = sum + a[i][i];
}
printf("%d",sum);
return 0;
}
以上是我的编程作业:只是问题的一种解法。
一起学习,欢迎交流。