欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 高考 > C语言程序设计-练习篇

C语言程序设计-练习篇

2024/10/25 2:31:08 来源:https://blog.csdn.net/2402_85207276/article/details/142265119  浏览:    关键词:C语言程序设计-练习篇

千万不要放弃,最好的东西总是压轴出场。

一,三角形的判断

描述:

已经给出三条边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是几位数->nint 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;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com