1. 三个数由小到大排序
输入任意3个整数,编程实现对这3个整数进行由小到大排序井将排序后的结果显示在屏幕上
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, b, c, t;
printf("请任意输入三个数(空格分隔):\n");
scanf("%d %d %d", &a, &b, &c);
if (a < b)
{
t = a;
a = b;
b = t;
}
else if (a < c)
{
t = a;
a = c;
c = t;
}
else if (b < c)
{
t = b;
b = c;
c = t;
}
printf("从大到小排列为:%d %d %d\n", a, b, c);
system("pause");
return 0;
}
2. a²+b²
要求输入整数a和 b, 若a²+b²的结果大与100, 则输出a²+b²的值,否则输出 a+b 的结果
#include <stdio.h>
void main()
{
int a,b;
printf("请输入两个整数:\n");
scanf("%d,%d,",&a,&b);
if(a*a+b*b>100)
{
printf("(a*a+b*b)/100=%d",(a*a+b*b)/100);
}
else
{
printf("a+b=%d",a+b);
}
return 0;
}
3. 判断闰年
判断任意年份是否为闰年,需要满足以下条件中的任意一个:
该年份能被 4 整除同时不能被 100 整除;
该年份能被400整除
#include <stdio.h>
int main()
{
int year,a;
printf("请输人年份:\n");
scanf("%d",&year);
if(year%400==0)
a=1;
else
{
if(year%4==0&&year%100!=0)
a=1;
else
a=0;
}
if(a==1)
{
printf("%d 此年是闰年\n",year);
}
else
{
printf("%d 此年非闰年\n",year);
}
return 0;
}
4. 编程判断输入的数是否既是5又是7的整倍数,如果是输出yes, 否则输出no
int main(){
int n;
scanf("%d",&n);
if(n%5==0&&n%7==0)
{
printf("yes");
}
else{
printf("no");
}
printf("\n");
return 0;
}
5. 成绩排名,编程对输入的分数给出相应的等级,分数大于等于90为"A",80-89为"B",70-79 为"C",60-69为"D",60分以下为"E"。
#include<stdio.h>
int main()
{
int a;
printf("请输入成绩:");
scanf("%d",&a);
if(a>=90&&a<=100)
printf("等级是A\n");
else if(a>=80&&a<=89)
printf("等级是B\n");
else if(a>=70&&a<=79)
printf("等级是C\n");
else if(a>=60&&a<=69)
printf("等级是D\n");
else if(a>=0&&a<=59)
printf("等级是E\n");
else if(a<0)
printf("输入错误,请输入1~100的成¦绩");
getchar();
return 0;
}
6. 打印乘法口诀表
#include<stdio.h>
int main(){
//外层循环变量,控制行
int i = 0;
//内层循环变量,控制列
int j = 0;
for(i=1;i<=9;i++){
for(j=1;j<=i;j++){
printf("%dx%d=%d\t",j,i,i*j);
}
//每行输出完后换行
printf("\n");
}
}
7.打印三角形
#include <stdio.h>
int main() {
int i, j;
int line;
printf("请输入行数:");
scanf("%d", &line);
for (i = 0; i <= line; i++) {
for (j = line - i + 1; j <= line; j++) {
printf("* ");
}
printf("\n");
}
return 0;
}
8.序列求和
用while循环做一个简单的计算s=1 + 1/2+ 1/3+ … + 1/n。
#include <stdio.h>
int main()
{
int i=1;
double sum=0;
while(i<=100){
sum += 1.0/i;
i++;
}
printf("sum=%0.2lf",sum);
return;
}
(如果不是题目限制while,这里也可以用for循环,应该也更加直观)
9.整数加减法练习
练习者自己选择是进行加法还是减法运算,之后输入进行多少以内的加法或减法运算,具体数值会由计算机随机产生,输入答案,计算机会根据输人的数据判断结果是否正确
#include<stdio.h>
#include<stdlib.h> //srand()
#include<time.h> //time()
int main()
{
int sign,a,b,c;
char sign1;
int max; //最大范围
scanf("%d", &sign);
scanf("%d", &max);
srand((unsigned long)time(0));
a = rand() % max;
b = rand() % max;
while (sign==1&&a<b) //如果为减,a又比b小重新生成随机数
{
a = rand() % max;
b = rand() % max;
}
sign1 = (sign == 1 ?'-':'+');
printf("%d%c%d=", a, sign1, b);
scanf("%d", &c);
if ((sign == 1) && (a - b == c) || (sign != 1) && (a + b == c))
printf("right");
else
printf("error");
return 0;
}
10.猴子吃桃问题
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
include<stdio.h>
int main()
{
int day,x1,x2;
day=9;
x2=1;
while(day>0)
{
x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/
x2=x1;
day--;
}
printf("the total is %d\n",x1);
return 0;
}
11.数组逆序排序
#include<stdio.h>
int main()
{
int a[10], i, temp;
printf("请输入一串要逆序输出的数字:"); //输入一串数字
for (i = 0; i < 10; i++)
scanf("%d", &a[i]);
putchar('\n');
for (i = 0; i < 10 / 2; i++) //将数字逆序输出
{
temp = a[i];
a[i] = a[10 - i - 1];
a[10 - i - 1] = temp;
}
printf("逆序输出后的结果为:");
for (i = 0; i < 10; i++)
printf("%3d", a[i]);
return 0;
}
12.不用strcat 连接两个字符串
思路:先了解下strcat的特性,先看一个网上找的demo:
#include <stdio.h>
#include <string.h>
int main ()
{
char src[50], dest[50];
strcpy(src, "This is source");
strcpy(dest, "This is destination");
strcat(dest, src);
printf("最终的目标字符串: |%s|", dest);
return(0);
}
输出结果:
|This is destinationThis is source|
因此明白是把两个段落链接起来的
#include <stdio.h>
main()
{
char a[100],b[100];
int i=0,j=0;
printf("Please input 2 strings:\n");
gets(a); //输入字符串啊,a,b
gets(b);
while(a[i]!='\0')
i++; // i 表示字符串a的'\0'所在的位置
while(b[j]!='\0') //将b中字符一个个赋值给'\0'以及其后面的位置,i++,j++控制一一对应
a[i++]=b[j++];
a[i]='\0' //给一个结束标志
puts(a); //输出
return 0;
}