千万不要放弃,最好的东西总是压轴出场。
一,三角形的判断
描述:
已经给出三条边a,b,c,如果能构成三角形,判断三角形的类型(等边三角形,等腰三角形或普通三角形)。
输入描述:
题目有多组输入数据,每一行输入三个a,b,c(0<a,b,c<1000),作为三角形的三个边,用空格分隔。
输出描述:
针对每组输入数据,输出占一行,如果能构成三角形,等边三角形则输出"Equilateral triangle!",等腰三角形则输出"Isosceles triangle!",其余的三角形则输出"Ordinary triangle!",反之输出"Not a triangle!"。
示例:
输入:2 3 2
3 3 3
输出:Isosceles triangle!
Equilateral triangle!
#include <stdio.h>
int main()
{
int a = 0;
int b = 0;
int c = 0;
while (scanf("%d %d %d", &a, &b, &c) == 3)
{
//判断
if ((a + b > c) && (a + c > b) && (b + c > a))
{
if (a == b && b == c)
{
printf("Equilateral triangle!\n");
}
else if ((a == b && b != c) || (a == c && c != b) || (b == c && c != a))
{
printf("Isosceles triangle!\n");
}
else
{
printf("Ordinary triangle!\n");
}
}
else
{
printf("Not a triangle!\n");
}
}
return 0;
}
二,使用指针打印数组内容
题目内容:
写一个函数打印arr数组的内容,不使用数组下标,使用指针
arr是一个整型一维数组
#include <stdio.h>
//使用指针打印数组内容
void print(int* p, int sz)
{
int i = 0;
for (i = 0; i < sz; i++)
{
printf("%d ", *(p + i));
}
printf("\n");
}
int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int sz = sizeof(arr) / sizeof(arr[0]);
print(arr, sz);
return 0;
}
三,字符串逆序
题目内容:
逆序一个字符串的内容,并输出。
数据范围:1<=len(str)<=10000
(PS:scanf 遇到空格就不读取了,所以这个时候使用 gets 来读取数据)
#include <stdio.h>
//字符串逆序
int main()
{
char arr[10001] = { 0 };
gets(arr);
//逆序
int left = 0;
int right = strlen(arr) - 1;
while (left < right)
{
char tmp = arr[left];
arr[left] = arr[right];
arr[right] = tmp;
left++;
right--;
}
printf("%s\n", arr);
return 0;
}
四,计算求和
题目内容:
求Sn=a+aa+aaa+aaaa+aaaaa+………的前n项之和,其中a是一个数字。
#include <stdio.h>
//计算求和
int main()
{
int a = 0;
int n = 0;
scanf("%d %d", &a, &n);
int i = 0;
int sum = 0;
int k = 0;
for (i = 0; i < n; i++)
{
k = k * 10 + a;
sum += k;
}
printf("%d\n", sum);
return 0;
}
五,打印水仙花数
题目内容:
求出1~100000之间的所有“水仙花数”并输出。
“水仙花数”是指一个n位数,其各位数字的n次方之和恰好等于该数本身,如:153=1^3+5^3+3^3,则153是一个“水仙花数”。
(水仙花数是指三位数,所以此处求的“水仙花数”打了引号)
#include <stdio.h>
#include <math.h>
//打印“水仙花数”
int main()
{
int i = 0;
for (i = 0; i <= 100000; i++)
{
//判断“水仙花数”
//1.计算i是几位数->n
int n = 1;//任何一个数至少是一位数
int tmp = i;//防止在循环内部改变循环变量出现问题
int sum = 0;
while (tmp / 10)
{
n++;
tmp /= 10;
}
//2.得到i每一位,计算它的n次方之和
tmp = i;
while (tmp)
{
sum += pow(tmp % 10, n);
tmp /= 10;
}
if (sum == i)
{
printf("%d ", i);
}
}
return 0;
}
标签:tmp,arr,triangle,int,练习,C语言,printf,程序设计,水仙花
From: https://blog.csdn.net/2402_85207276/article/details/142265119