1、给一个不多于五位的正整数,要求:求出其位数,并分别打印出每一位数字,最后按逆序打印出这个正整数(如:输入123,打印出:321)。
#include<stdio.h>
#include<math.h>
int main()
{
int num, i = 0, digit,sum=0;
int str[10] = { 0 };
printf("请输入一个不多于五位的正整数:\n");
scanf("%d", &num);
for (i = 0;; i++)
{
str[i] = num % 10;
if (num < 10)
break;
num /= 10;
}
digit = i + 1;
printf("该正整数的位数是:%d\n", digit);
for (i = digit - 1; i >= 0; i--)
printf("%3d", str[i]);
for (i = 0; i < digit; i++)
sum += pow(10, digit-i-1) * str[i];
printf("\n逆序输出该正整数:%d\n", sum);
return 0;
}
2、求一个4行4列矩阵主对角线元素之和。
#include<stdio.h>
#define MAX 4
int main()
{
int i, j, sum = 0;
int num[MAX][MAX] = { 0 };
printf("请输入矩阵(行优先):\n");
for (i = 0; i < MAX; i++)
for (j = 0; j < MAX; j++)
scanf("%d", &num[i][j]);
for (i = 0; i < MAX; i++)
sum += num[i][i];
printf("这个矩阵的对角线之和为:%d\n", sum);
return 0;
}
3、编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。
#include<stdio.h>
#define MAX 40
int compare(char str_1[], char str_2[], int user_len)
{
int i = 0;
for (i = 0; str_1[i] != '\0' && str_2[i] != '\0' && i < user_len; i++)
{
if (str_1[i] != str_2[i])
break;
}
if (i < user_len) return 1;
else return 0;
}
int len(char user[])
{
int i = 0;
while (1)
{
if (user[i] == '\0')
return i;
i++;
}
}
int main()
{
int user_len = 0, ret;
char str[MAX] = "hello world ";
char user[MAX];
printf("请输入一个字符串:\n");
gets(user);
user_len = len(user);
ret = compare(str, user, user_len);
if (!ret)
printf("字符串相同!\n");
else
printf("字符串不同!\n");
return 0;
}
4、输出100-200之间,能被3整除但不能被7整除的数。
#include<stdio.h>
int main()
{
int i;
for (i = 100; i <= 200; i++)
{
if (i % 3 == 0 && i % 7 != 0)
{
printf("%d ", i);
}
}
}
5、将一个月份数字转换为月份的英文名称。
#include<stdio.h>
int main()
{
int user=0;
printf("请输入数字(1-12):\n");
scanf("%d", &user);
switch (user)
{
case 1:
printf("January\n");
break;
case 2:
printf("February\n");
break;
case 3:
printf("March\n");
break;
case 4:
printf("April");
break;
case 5:
printf("May");
break;
case 6:
printf("June");
break;
case 7:
printf("July");
break;
case 8:
printf("August");
break;
case 9:
printf("September");
break;
case 10:
printf("October");
break;
case 11:
printf("Movember");
break;
case 12:
printf("December");
break;
default:
printf("输入格式错误!\n");
break;
}
return 0;
}
6、编写一个程序,用简单选择排序实现对5个整数的排序(从大到小),排序的思路:首先从n个整数中选出值最大的整数,将他交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作,直到排序成功。
#include<stdio.h>
#define MAX 5
int main()
{
int num[MAX] = { 0 };
int i,j,index,temp;
printf("请输入%d个数字:\n",MAX);
for (i = 0; i < MAX; i++)
scanf("%d", &num[i]);
for (i = 0; i < MAX - 1; i++)
{
index = i;
for (j = index+1; j < MAX; j++)
{
if (num[index] < num[j])
index = j;
}
if (index != i)
{
temp = num[i];
num[i] = num[index];
num[index] = temp;
}
}
for (i = 0; i < MAX; i++)
printf("%d ", num[i]);
return 0;
}
|