前言

最近有朋友和同学找我要c语言基础练习答案,为了方便分享,放在我的博客上了,如果对你确实有帮助,可以考虑点下赞或打赏哦(都能通过,没有专注于搞算法,所以有的地方可以优化,欢迎在评论区留言)

A. A+B问题

#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c=a+b;
printf("%d",c);
return 0;
}

B. 圆的面积

#include<stdio.h>
int main()
{
double p=3.1415926535898;
double r,s;
scanf("%lf",&r);
s=p*r*r;
printf("%0.6lf",s);
}

C. 闰年

#include<stdio.h>
int main()
{
int y;
scanf("%d",&y);
if(y%400==0||(y%4==0&&y%100!=0)){
printf("yes");
}
else
printf("no");
return 0; }

D. 求四个数的最大数

#include<stdio.h>
int main()
{
int a[4];
int i,max;
for(i=0;i<4;i++)
{
scanf("%d",&a[i]);
}
max=a[0];
for(i=0;i<4;i++)
{
if(max<a[i])
max=a[i];
} printf("%d",max); return 0;
}

E. 判断素数

#include<stdio.h>
int main()
{
int flag=1,i,a;
scanf("%d",&a);
if(a==1){
printf("NO");
return 0;
}
for(i=2;i<a;i++)
if(a%i==0)
flag=0; if(flag==0)
printf("NO");
else
printf("YES");
return 0;
}

F. 最大公约数

#include<stdio.h>
int main()
{
int n,m,t;
scanf("%d%d",&n,&m);
while((t=n%m)!=0)
{
n=m;
m=t;
}
printf("%d",m);
return 0;
}

  

G. 奇数和

#include<stdio.h>
int main()
{
int i,n;
long k=0;
scanf("%d",&n);
for(i=1;i<n;i+=2){
k+=i;
}
printf("%ld",k);
}

  

H. 阶乘和

#include<stdio.h>
int main(){
long n,i;
long sum=1;
long k=0;
scanf("%ld",&n);
for(i=1;i<=n;i++)
{
sum=sum*i;
k+=sum;
}
printf("%ld",k);
return 0;
}

I. 分解质因数2

#include <stdio.h>

int main(){
int n; // 用户输入的整数
int i; // 循环标志 scanf("%d",&n);
printf("%d = 1*",n); for(i=2; i<=n; i++){
while(n!=i){
if(n%i==0){
printf("%d*",i);
n=n/i;
}else
break;
}
}
printf("%d\n",n); return 0;
}

J. 求n以内所有素数

#include<stdio.h>
int main()
{
int flag,i,j,n;
scanf("%d",&n);
for(i=2;i<n;i++){
flag=1;
for(j=2;j<i;j++)
{
if(i%j==0)
{
flag=0;
break;
}
}
if(flag==1)
{
printf("%d\n",i);
}
} }

K. 从小到大排序

#include<stdio.h>
int main()
{
int n,i,j,temp;
int arr[100]; scanf("%d",&n); for(i=0;i<n;i++){
scanf("%d",&arr[i]);
} for(i=0;i<n-1;i++){
for(j=i+1;j<n;j++){
if(arr[i]>arr[j])
{
temp=arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
} for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
}
return 0;
}

L. 数据去重

#include<stdio.h>

int main(){

    int n,i,t,res=0;
int arr[100]; scanf("%d",&n);
for(i = 0; i < n; i++){
scanf("%d",&arr[i]);
} for(i = 0; i < n - 1; i++){
if(arr[i] == arr[i + 1] && arr[i] != 0){
for(t = i+1; t < n - 1; t++){
arr[t] = arr[t + 1];
}
arr[t] = 0;
i--;
res++;
}
} for(i = 0; i < n - res; i++){
printf("%d ",arr[i]);
} return 0;
}

M. 连接字符串

#include<stdio.h>
int main()
{
int i=-1;
int j=-1;
char arr1[60],arr2[30];
scanf("%s",arr1);
scanf("%s",arr2);
while(arr1[++i]!='\0');
while(arr2[++j]!='\0')
{
arr1[i++]=arr2[j];
}
arr1[i]='\0';
printf("%s",arr1);
return 0;
}

N. 合并序列

#include<stdio.h>
int main()
{
int m,n;
int i,j,k=0;
int arr1[100],arr2[100];
scanf("%d",&m);
scanf("%d",&n);
for(i=0;i<m;i++){
scanf("%d",&arr1[i]);
}
for(i=0;i<n;i++){
scanf("%d",&arr2[i]);
}
for(i=0;i<m;i++)
{ for(j=0;j<n;j++){
//找到位置后移 if(arr1[i]>arr2[n-1]){
arr2[n]=arr1[i];
n++;
break;
} if(arr1[i]<arr2[j]){
for(k=n+1;k>j;k--){
arr2[k]=arr2[k-1];
}
arr2[j]=arr1[i];
n++;
break;
}
} }
for(i=0;i<n;i++)
{
printf("%d ",arr2[i]);
} }

O. 大整数加法

#include<stdio.h>
#include<string.h> int main()
{
int bigint_1[100001] = {0};
int bigint_2[100001] = {0};
char sNum_1[100001] = {'\0'};
char sNum_2[100001] = {'\0'}; //输入大整数1和大整数2
scanf("%s %s",sNum_1,sNum_2); for(int i = 0,j = strlen(sNum_1) - 1;j >= 0;)
{
bigint_1[i++] = sNum_1[j--] - '0';
}
for(int i = 0,j = strlen(sNum_2) - 1;j >= 0;)
{
bigint_2[i++] = sNum_2[j--] - '0';
} int k = 0;
while(k <= 100000)
{
bigint_1[k] += bigint_2[k]; if(bigint_1[k] >= 10)
{
bigint_1[k+1]++;
bigint_1[k] -= 10;
}
k++;
} int mark = 0;
int i = 0;
for(i = 100000;i >= 0;i--)
{
if(bigint_1[i] != 0)
{
mark = i;
break;
}
} if(i == -1)
{
printf("0\n");
}
else
{
for(int i = mark;i >= 0;i--)
{
printf("%d",bigint_1[i]);
}
putchar('\n');
} return 0;
}

P. 杨辉三角

#include<stdio.h>
int main()
{
int i,j,n;
int arr[50][50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
arr[i][0]=1;
arr[i][i]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<i;j++){
arr[i][j]=arr[i-1][j]+arr[i-1][j-1];
}
} for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0; }

Q. 水仙花数

#include<stdio.h>
int main()
{
int i,g,s,b;
for(i=100;i<1000;i++){
g=i%10;
s=i/10%10;
b=i/100;
if(g*g*g+s*s*s+b*b*b==i){
printf("%d\n",i);
}
} }

R. 回文数

#include<stdio.h>
int main()
{
int g,s,b,q,i=2546;
for(i=1000;i<10000;i++){
g=i%10;
s=i%100/10;
b=i/100%10;
q=i/1000;
if((g==q)&&(s==b))
{
printf("%d\n",i);
}
}
}

S. 删除零元素

#include<stdio.h>
int main()
{
int i,n;
int arr[50];
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&arr[i]);
if(arr[i]==0){
i--;
n--;
}
}
printf("%d\n",n);
for(i=0;i<n;i++)
{
printf("%d ",arr[i]);
} }

T. 输出倒三角

#include<stdio.h>
int main()
{
int i,j,n;
scanf("%d",&n);
for(i=n;i>0;i--)
{
for(j=0;j<i;j++)
{
printf("* ");
}
printf("\n");
} }

U. 1000以内的完数

#include<stdio.h>
int main()
{
//注释部分用于显示因子
//int c=0,temp[500];
for(int i=2;i<=1000;i++)
{
int sum=1;
for(int j=2;j<=i/2;j++)
{
if(i%j==0)
{
sum+=j;
//temp[c++]=j;
}
}
if(sum==i)
{
printf("%d\n",i);
}
}
}

V. 单词翻转

#include<stdio.h>
#include<string.h>
int main()
{
int i,j,n;
char dc[100];
char dcs[10][100];
i=j=-1;
n=0;
gets(dc);
while(dc[++i]!='\0')
{
if(dc[i]=='\40')
{
dcs[n][++j]='\0';
n++;
j=-1;
continue;
}
dcs[n][++j]=dc[i];
}
dcs[n][++j]='\0';
for(i=n;i>=0;i--)
{
printf("%s",dcs[i]);
if(i!=0){
printf(" ");
}
} }

W. 报数

#include<stdio.h>
int main()
{
int arr[1000]={0};
int i,n,m,count,k=1;
scanf("%d",&n);
scanf("%d",&m);
count=n;
for(i=0;;i=(i+1)%n)
{
if(count==1)
break; if(arr[i]==1)
continue;
if(k==m)
{
arr[i]=1;
k=0;
count--;
}
k++;
} for(i=0;i<n;i++)
{
if(arr[i]==0){
printf("%d\n",i+1);
}
} }

X. 九九乘法表

#include<stdio.h>
int main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%d ",i,j,i*j); }
printf("\n"); } }

Y. 分解质因数

#include<stdio.h>
int main()
{
int i,j,k,t,n;
scanf("%d",&k);
scanf("%d",&t);
for(i=k;i<=t;i++)
{
n=i;
printf("%d=",n);
for(j=2;j<n;j++)
{
if(n%j==0)
{
printf("%d*",j);
n=n/j;
j=1;
}
}
printf("%d\n",n); }
}

C语言基础部分练习(http://acm.hgnu.edu.cn)的更多相关文章

  1. Linux入门所必备的Linux命令和C语言基础

    文件和目录(底部有视频资料) cd /home 进入 '/ home' 目录' cd - 返回上一级目录 cd -/- 返回上两级目录 cd 进入个人的主目录 cd ~user1 进入个人的主目录 c ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  3. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  4. C#语言基础

    第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...

  5. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  6. 黑马程序员_ C语言基础(二)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述):   1.Hello W ...

  7. C#语言基础— 输入与输出

    C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...

  8. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  9. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

随机推荐

  1. JavaWeb——Tomcat使用

    官方下载地址:https://tomcat.apache.org/download-90.cgi 选择安装包: 64-bit Windows zip (pgp, sha512) 注:tar.gz后缀的 ...

  2. 突发!Gitee 图床,废了!

    大家好,我是鱼皮,这两天又发生了一件挺意外的事情:Gitee 的图床废了! 图床:指储存图片的服务器,便于在网上展示图片 昨天晚上,星球里不止一位小伙伴发帖子表示自己网站.文章中的图片竟然全部变成了 ...

  3. elasticsearch 了解多少,说说你们公司 es 的集群架构,索 引数据大小,分片有多少,以及一些调优手段 ?

    面试官:想了解应聘者之前公司接触的 ES 使用场景.规模,有没有做过比较大 规模的索引设计.规划.调优. 解答: 如实结合自己的实践场景回答即可. 比如:ES 集群架构 13 个节点,索引根据通道不同 ...

  4. Oracle入门基础(十三)一一java调用oracle存储过程

    package demo; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.ResultS ...

  5. Spring 应用程序有哪些不同组件?

    Spring 应用一般有以下组件:接口 - 定义功能.Bean 类 - 它包含属性,setter 和 getter 方法,函数等.Spring 面向切面编程(AOP) - 提供面向切面编程的功能.Be ...

  6. Java 线程数过多会造成什么异常?

    1.线程的生命周期开销非常高 2.消耗过多的 CPU 资源 如果可运行的线程数量多于可用处理器的数量,那么有线程将会被闲置.大量空 闲的线程会占用许多内存,给垃圾回收器带来压力,而且大量的线程在竞争  ...

  7. Math.round(11.5) 等于多少?Math.round(-11.5)等于 多少?

    Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11.四舍五 入的原理是在参数上加 0.5 然后进行下取整.

  8. Solution Architect

    Solution Architect How to become a solution architect - CareerExplorer What does a solution architec ...

  9. 10行 JavaScript 实现文本编辑器

    背景 我们平时用到的浏览器编辑器功能都会比较多,实现的代码逻辑也会非常复杂,往往是作为一个单独插件被引入进来的.但是,现在我只需要一个很基本的内容输入内容编辑的功能,如:粗体.斜体.列表.对齐等.那要 ...

  10. SQL语句中关于日期的操作(非常的有用)

    在SQL Server 里的日期数据,我们经常可以用 字段<='2008-5-20'这样的表达式,但在oracle却不可以,因为数据类型不一样 字段是date型,'2008-5-20'是字符型, ...