1. 从键盘上输入字符,将小写字母转换成大写字母。输入“ctl + z” 结束 。
#include<stdio.h>
#include<stdlib.h>
//从键盘上输入字符,将小写字母转换成大写字母。输入“ctl + z” 结束 int main()
{
char c;
while (fflush(stdin),scanf_s("%c", &c) != EOF)
{
if (c >= 'a'&&c<='z' )
{
c = c - ;
printf("%c", c);
continue;
}
if (c >= 'A'&&c < ='Z')
{
printf("%c", c);
continue;
}
else printf("error,input agian\n");
} printf("\n");
system("pause");
return ;
}
  1. 从键盘上输入字符,(1)分别统计一下其中字母,数字,其他字符的个数, (2)将统计的字母,数字,其他字符的个数以柱状图的形式打印。例如

5

*****

*****     3

*****   *****     2

*****   *****   *****

*****   *****   *****

alp     num     oth

#include<stdio.h>
#include<stdlib.h>
typedef struct {
int n;
char *name;
}elem;
elem alp, num, oth, print[], tmp;
void paixu(elem *print)
{
if ((print[].n < print[].n) == )
{
tmp = print[];
print[] = print[];
print[] = tmp;
}
if ((print[].n < print[].n) == )
{
tmp = print[];
print[] = print[];
print[] = tmp;
}
if ((print[].n < print[].n) == )
{
tmp = print[];
print[] = print[];
print[] = tmp;
}
}
int main()
{
char c;
int cnt[] = { };
int i = , j = ;
int maxc;
alp.n = ;
num.n = ;
oth.n = ;
alp.name = "alp";
num.name = "num";
oth.name = "oth"; int flag = ;
while (fflush(stdin), scanf_s("%c", &c) != EOF)
{
if (c >= 'a'&&c <= 'z' || c >= 'A'&&c <= 'Z')
{
alp.n++;
printf("%c", c);
continue;
}
else if (c >= && c <= )
{
num.n++;
printf("%c", c);
continue;
}
else if (c != '\0') {
oth.n++;
printf("%c", c);
}
if (c == '\n')break;
}
oth.n--; print[] = alp;
print[] = num;
print[] = oth;
paixu(print); for (i = ; i <= print[].n; i++)
{
printf("\n");
if (print[].n - i <= print[].n)
{ if (print[].n - i == print[].n)
{
if (print[].n == print[].n)
{
if (print[].n == print[].n)
printf("%s\t%s\t%s", print[].name, print[].name, print[].name);
else printf("%s\t%s", print[].name, print[].name);
}
else printf("%s", print[].name);
continue;
}
printf("*****\t");
//////////////////////////////////
if (print[].n - i <= print[].n)
{
if (print[].n - i == print[].n)
{
if (print[].n == print[].n)
printf("%s\t%s", print[].name, print[].name);
else printf("%s", print[].name);
continue;
}
printf("*****\t");
/////////////////////////////////////
if (print[].n - i <= print[].n)
{
if (print[].n - i == print[].n)
{
printf("%s", print[].name);
continue;
}
printf("*****\t");
}
}
}
}
printf("\n"); printf("%d\t", print[].n);
printf("%d\t", print[].n);
printf("%d\t", print[].n);
printf("\n"); printf("\n");
system("pause");
return ;
}

3.进制转换。

(1) 将十进制数转换成二进制数。输入十进制数输出对应的二进制数,输入“ctl + z”结束。

#include<stdio.h>
#include<stdlib.h> #define N 8
void fun(int num, int k)
{
int arr[N], i;
for (i = ; i <N; i++)
{
arr[i] = num % k;
num = num / k;
if (num == )
break;
}
for (; i >= ; i--)
printf("%d", arr[i]);
printf("\n\n\n");
} int main()
{
int n; while (fflush(stdin), scanf_s("%d", &n) != EOF)
{
fun(n, );
}
printf("\n");
system("pause");
return ;
}

(2)将二进制转换成十进制数。输入二进制数输出对应的十进制数,输入“ctl + z”结束

#include<stdio.h>
#include<stdlib.h>
#include<string.h> int main()
{
char *p, s[]; int n;
p = s;
gets(p);
n = ;
while (*p != '\0')
{
n = n * + *p - '';
p++;
}
printf("%d", n);
system("pause");
return ;
}

(3) 将十进制数转换成十六进制数。输入十进制数输出对应的十六进制数。输入“ctl + z” 结束。

#include<stdio.h>
#include<stdlib.h> #define N 8
void fun(int num)
{
int arr[N], i;
for (i = ; i <N; i++)
{
arr[i] = num % ;
num = num / ;
if (num == )
break;
}
for (; i >= ; i--)
switch (arr[i])
{
case : printf("A"); break;
case : printf("B"); break;
case : printf("C"); break;
case : printf("D"); break;
case : printf("E"); break;
case : printf("F"); break;
default: printf("%d", arr[i]);
}
printf("\n\n\n");
} int main()
{
int n; while (fflush(stdin), scanf_s("%d", &n) != EOF)
{
fun(n);
}
printf("\n");
system("pause");
return ;
}

(4) 将十六进制数转换成十进制数。输入十六进制数输出对应的十进制数。输入“ctl +  z” 结束。

#include<stdio.h>
#include<stdlib.h>
#include<string.h> int main()
{
char *p, s[]; int n;
p = s;
gets(p);
n = ; while (*p != '\0')
{
switch (*p)
{
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case '':n = ; break;
case 'A':n = ; break;
case 'B':n = ; break;
case 'C':n = ; break;
case 'D':n = ; break;
case 'E':n = ; break;
case 'F':n = ; break;
default:break; }
n = n * + *p - '';
p++;
}
printf("%d", n);
system("pause");
return ;
}

4.统计一个整数对应的二进制数的1的个数。输入一个整数(可正可负), 输出该整数的二进制包含1的个数, “ctl+ z” 结束。

#include<stdio.h>
#include<stdlib.h> #define N 8
void fun(int num, int k)
{
int arr[N], i, cnt = ;
for (i = ; i <N; i++)
{
arr[i] = num % k;
num = num / k;
if (num == )
break;
}
for (; i >= ; i--)
{
if (arr[i] == )cnt++;
printf("%d", arr[i]);
}
printf("共有%d个1",cnt);
printf("\n\n\n");
} int main()
{
int n; while (fflush(stdin), scanf_s("%d", &n) != EOF)
{
fun(n, );
}
printf("\n");
system("pause");
return ;
}

5.有101个整数,其中有50个数出现了两次,1个数出现了一次, 找出出现了一次的那个数。

#include<stdio.h>
#include<stdlib.h>
#include<string.h> int main()
{
int a[];
int i, ret = ;
for (i = ; i < ; i++) a[i] = i + ;
for (i = ; i <= ; i++) a[i] = i - ;
scanf_s("%d", &a[]);
for (i = ; i <= ; ++i)
{
ret = ret ^ a[i];
}
printf("%d\n", ret);
printf("\n");
system("pause");
return ;
}

6.

(1)输入年月日,输出该日期是当年的第几天。

#include<stdio.h>
#include<stdlib.h> int main()
{
int a[] = {,,,,,,,,,,, };
int year, mon, day,sum=;
scanf_s("%d%d%d", &year, &mon, &day);
for (int i = ; i < mon - ; i++)sum += a[i];
sum += day;
if (mon > )sum =sum+(year % && year % || year % );
printf("%d", sum); printf("\n");
system("pause");
return ;
};

(2)输入两个日期(年 月 日 年 月 日), 输出这两个日期之间差多少天

#include<stdio.h>
#include<stdlib.h> int isleap(int year)
{
return year % == && year % == || year % ==;
}
int main()
{
int a[] = { ,,,,,,,,,,, };
int year1 = , mon1 = , day1 = , year2 = , mon2 = , day2 = , sum1 = , sum2 = , sum = , gap = ; scanf_s("%d %d %d", &year1, &mon1, &day1);
scanf_s("%d %d %d", &year2, &mon2, &day2); for (int i = ; i < mon1 - ; i++)sum1 += a[i];
sum1 += day1;
if (mon1 > )sum1 = sum1 + isleap(year1);
printf("%d天", sum1); for (int i = ; i < mon2 - ; i++)sum2 += a[i];
sum2 += day2;
if (mon2 > )sum2 = sum2 + isleap(year2);
printf("%d天", sum2); gap = abs(year2 - year1);
sum = sum2 - sum1 + gap * + gap / ; printf("%d天", sum); printf("\n");
system("pause");
return ;
}

(3)输入一个日期,输出该日期是星期几。

#include<stdio.h>
#include<stdlib.h> int isleap(int year)
{
return year % == && year % == || year % ==;
}
int main()
{
int a[] = { ,,,,,,,,,,, };
int year1 = , mon1 = , day1 = , year2 = , mon2 = , day2 = , sum1 = , sum2 = , sum = , gap = ;
int week = ; scanf_s("%d %d %d", &year2, &mon2, &day2); for (int i = ; i < mon1 - ; i++)sum1 += a[i];
sum1 += day1;
if (mon1 > )sum1 = sum1 + isleap(year1);
for (int i = ; i < mon2 - ; i++)sum2 += a[i];
sum2 += day2; if (mon2 > )sum2 = sum2 + isleap(year2); gap = abs(year1 - year2);
sum = sum2 + gap * + gap / - sum1;
week = sum;
while (week /!=)
{
week %= ;
}
if(week==||week==)
printf("星期日", week);
else
printf("星期%d", week); printf("\n");
system("pause");
return ;
}

4.输入 一个日期 和一个整数 n,输出从该日期起经过n天以后的日期。

-> date -> tomorrow of the date

#include<stdio.h>
#include<stdlib.h> int isleap(int year)
{
return year % == && year % == || year % == ;
}
int main()
{
int a[] = { ,,,,,,,,,,, };
int year1 = , mon1 = , day1 = , year2 = , mon2 = , day2 = , sum1 = , sum2 = , sum = ,
gap = , days = ;
int week = ;
int i;
scanf_s("%d", &days); for (i = ; i < mon1 - ; i++)sum1 += a[i];
sum1 += day1;
if (mon1 > )sum1 = sum1 + isleap(year1); sum = sum1 + days;
year2 = year1; while (sum > + isleap(year2))
{
year2 = year2 + gap;
sum -= - isleap(year2); } ; if (sum < + isleap(year2))
{
for (i = ; sum > a[i]; i++)
{
sum -= a[i];
}
i++;
mon2 = i;
day2 = sum;
printf("%d年%d月%d日", year2, mon2, day2);
} printf("\n");
system("pause");
return ;
}

算法实现c语言--02的更多相关文章

  1. 魔方阵算法及C语言实现

    1 魔方阵概念 填充的,每一行.每一列.对角线之和均相等的方阵,阶数n = 3,4,5….魔方阵也称为幻方阵. 例如三阶魔方阵为: 魔方阵有什么的规律呢? 魔方阵分为奇幻方和偶幻方.而偶幻方又分为是4 ...

  2. 一个UUID生成算法的C语言实现 --- WIN32版本 .

    一个UUID生成算法的C语言实现——WIN32版本   cheungmine 2007-9-16   根据定义,UUID(Universally Unique IDentifier,也称GUID)在时 ...

  3. 无限大整数相加算法的C语言源代码

    忙里偷闲,终于完成了无限大整数相加算法的C语言代码,无限大整数相加算法的算法分析在这里. 500位的加法运行1000次,不打印结果的情况下耗时0.036秒,打印结果的情况下耗时16.285秒. 下面是 ...

  4. 数据结构算法集---C++语言实现

    //数据结构算法集---C++语言实现 //各种类都使用模版设计,可以对各种数据类型操作(整形,字符,浮点) /////////////////////////// // // // 堆栈数据结构 s ...

  5. 1164: 零起点学算法71——C语言合法标识符(存在问题)

    1164: 零起点学算法71——C语言合法标识符 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 10 ...

  6. 【最全】经典排序算法(C语言)

    算法复杂度比较: 算法分类 一.直接插入排序 一个插入排序是另一种简单排序,它的思路是:每次从未排好的序列中选出第一个元素插入到已排好的序列中. 它的算法步骤可以大致归纳如下: 从未排好的序列中拿出首 ...

  7. PID算法(c 语言)(转)

    PID算法(c 语言)(来自老外) #include <stdio.h> #include<math.h> //定义PID 的结构体 struct _pid { int pv; ...

  8. 一个UUID生成算法的C语言实现——WIN32版本

    源: 一个UUID生成算法的C语言实现——WIN32版本

  9. 排序算法总结(C语言版)

    排序算法总结(C语言版) 1.    插入排序 1.1     直接插入排序 1.2     Shell排序 2.    交换排序 2.1     冒泡排序 2.2     快速排序 3.    选择 ...

随机推荐

  1. sql的一些知识_数据分组

    group by--------按**分组查询 SELECT rank, MIN(weight)as min_weight FROM userinfo GROUP BY rank 对分组的值进行过滤需 ...

  2. leetcode 题解 || Remove Nth Node From End of List 问题

    problem: Given a linked list, remove the nth node from the end of list and return its head. For exam ...

  3. opencv yuv420与Mat互转

    项目用到opencv 融合图片的功能,经过一天的调试,达到预期目标,先将如何调用opencv库实现YUV42与Mat互转记录下来. 一.下载opencv编译的库下载地址是:http://opencv. ...

  4. 利用反射快速给Model实体赋值 使用 Task 简化异步编程 Guid ToString 格式知多少?(GUID 格式) Parallel Programming-实现并行操作的流水线(生产者、消费者) c# 无损高质量压缩图片代码 8种主要排序算法的C#实现 (一) 8种主要排序算法的C#实现 (二)

    试想这样一个业务需求:有一张合同表,由于合同涉及内容比较多所以此表比较庞大,大概有120多个字段.现在合同每一次变更时都需要对合同原始信息进行归档一次,版本号依次递增.那么我们就要新建一张合同历史表, ...

  5. php错误封装类

    1.创建MyErrorHandler.php文件 代码如下: <?php class MyErrorHandler { public $message; public $filename; pu ...

  6. 【每日Scrum】第四天(4.14) TD学生助手Sprint1站立会议

    TD学生助手Sprint1站立会议(4.14) 任务看板 站立会议内容 组员 昨天 今天 困难 签到 刘铸辉 (组长) 今天早晨静姐调整了下界面和配色,下午和宝月兄一起做了GPS功能显示,暂时只能显示 ...

  7. Linux 下装mysql[Ubuntu & CentOS]

    Ubuntu: https://blog.csdn.net/hipilee/article/details/77610916

  8. caffe搭建以及初步学习--win7-vs2013-gtx650tiboost-cuda8.0-cifar10训练和测试-2-快速解决方案cifar10_quick_solver.prototxt

    首先安装好显卡----已经装好了?喜大普奔!没装好?那就用cpu,也是一样的. 拷贝cudnn v5.0 头文件和库文件以及执行文件到cuda8中 -------------------------- ...

  9. ThinkPHP5 安装自定义模块

    安装官方给的demo,在build.php文件中 <?php // +-------------------------------------------------------------- ...

  10. maven的坑: Exception in thread "pool-1-thread-1" java.lang.NoClassDefFoundError: org/eclipse/aether/spi/connector/Transfer$State

    搭建ReboletricSample的环境: 搭建完成,执行的时候报错: Exception in thread "main" java.lang.NoClassDefFoundE ...