前言

最近有朋友和同学找我要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. json.dumps参数之解

    宝藏参数,懂的都懂^-^ 说明:编译后print()打印内容,此内容以字符串紧凑输出,且无顺序,中文不可读..   应用:使用pycharm做接口测试时,print()打印出的接口下行,如下图:   ...

  2. IIS短文件猜解

    1.IIS短文件漏洞 Microsoft IIS 短文件/文件夹名称信息泄漏最开始由Vulnerability Research Team(漏洞研究团队)的Soroush Dalili在2010年8月 ...

  3. Java study 4

    JAVA 学习第四天 今日学习内容 快捷键.复习.注释.字面量 快捷键 学习地址:IJ快捷键 复习 jdk下载.安装.部署环境.第一个Java程序入门学习,环境变量path 注释 注释:顾名思义就是用 ...

  4. JavaScript 函数 (一 JavaScript 函数的声明与使用)

    函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块. JavaScript 函数的声明与使用 实例 <!DOCTYPE html> <html> <head> ...

  5. 关于如何让写自然溢出hash的无辜孩子见祖宗这件事

    关于如何让写自然溢出hash的无辜孩子见祖宗这件事 来源博客 这几天考试连着好几次被卡hash卡到死. 我谔谔,为什么连hash都要卡. 码力弱鸡什么时候才能站起来. 只需要任意两种字符,比如噫呜呜噫 ...

  6. ubuntu16 和ubuntu18安装及设置静态ip

    1.准备ubuntu16镜像2.安装:https://zhuanlan.zhihu.com/p/1447048653.安装ubuntu后,sudo passwd root这个命令建立root用户的密码 ...

  7. Java有没有goto?

    goto 是Java中的保留字,在目前版本的Java中没有使用.(根据James Gosling(Java之父)编写的<The Java Programming Language>一书的附 ...

  8. pg数据库排序和limit同时使用遇到的奇怪问题

    这两天由于一位实习生同事回学校答辩,因此我来跟进他之前开发的功能进行测试,测试反馈上来这么一个问题: 也就是说下面这两条sql查询出来的数据前10条的数据不一样. select * from tabl ...

  9. PowerDesigner生成MySQL脚本,表和字段进行转义

    打开Power Designer数据库建模工具,软件基本信息如下 如果PowerDesigner内置的(table_option)表物理操作没有,请看以下步骤 打开 Edit Current DBMS ...

  10. 学习RabbitMQ(四)

      I. 消息中间件特点: 1,异步处理模式 消息发送者可以发送一个消息而无需等待响应,消息发送者将消息发送到一条虚拟的通道或队列上,消息接收者则订阅或监听该通道,一条消息可能最终转发给一个或多个消息 ...