又是一周过去了,虽然感觉啥也没学,但是也掌握了一些东西;在这周明显发现学的东西开始变难,课后作业不会写,拿到手的状态就是感觉有那么点思路实际上啥思路都没有的神奇的状态,遇到问题怎么办,那就去找老师呗,毕竟花了钱就得好好利用起来,不然这老婆本不是白花了吗,老师也说的一句话我感觉特别有道理,他说我没有这个数学思维,解决方法也很简单,就是去多刷刷题目,题目做多了,大部分题型都见过了哪还会有什么没有思路的问题。这句话让我想起来了高中学数学的日子,也就是这样,题目不懂怎么办多写写类似的题目,题目做多了也就自然而然就懂了,然后就推荐了我去哪些地方刷题,这边我也分享给大家,一个是力扣,一个是牛客网。说完了这些来看看我这周学的代码(部分)。
输入一个字符串然后能知道他的空格数大小写字母数以及字符数
#include <stdio.h>
int main(int argc, char const *argv[])
{
char temp;
int ch1=0;
int ch2=0;
int ch3=0;
printf("请输入一个数:");
while ((temp=getchar())!='\n')
{
if ((temp>='A'&&temp<='Z')||(temp>='a'&&temp<='z'))
{
ch1++;
}
else if (temp==' ')
{
ch2++;
}
else
{
ch3++;
}
}
printf("字母有:%d\n",ch1);
printf("空格有:%d\n",ch2);
printf("字符有:%d\n",ch3);
return 0;
}
输入一个数得到他所有的素数
#include <stdio.h>
int main(int argc, char const *argv[])
{
int ch=0;
int i,j;
printf("请输入一个整数:");
scanf("%d",&ch);
for (int i = 2; i<ch; i++)
{
for ( j = 2; j < i; j++)
{
if(i%j==0)
break;
}
if (i==j)
{
printf("%d\n",i);
}
}
return 0;
}
那个美国的流行游戏
#include <stdio.h>
int main(int argc, char const *argv[])
{
int a;
int b=0;
int c=0;
printf("请输入一个整数:");
scanf("%d",&a);
while (a>1)
{
if (a%2==0)
{
a=a/2;
b++;
printf("%d\n",a);
}
else
{
a=(3*a)+1;
c++;
printf("%d\n",a);
}
}
printf("变换次数:%d\n",c+b);
return 0;
}
建立一个二维数组计算出和并且输出最小值的位置
#include <stdio.h>
int main() {
int arr[3][4] = {{12, 14, 16, 18},{11,22,33,44},{16, 26, 36, 46}};
int total_sum = 0;
int min_value=arr[0][0];
int min_row = 0, min_col = 0;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
total_sum += arr[i][j];
if (arr[i][j] < min_value) {
min_value = arr[i][j];
min_row = i;
min_col = j;
}
}
}
printf("二维数组的总和为: %d\n", total_sum);
printf("最小值位于第%d行,第%d列,值为: %d\n", min_row + 1, min_col + 1, min_value);
return 0;
}
打印成绩表
#include <stdio.h>
int main(int argc, char const *argv[])
{
int ch[5][5]={{},
{},
{},
{},
{}};
int sum=0;
float count=0;
printf("语文\t数学\t英语\t物理\t化学\t平均分\n");
for (int i = 0; i < 5; i++)
{
printf("%d\t",i);
for (int j = 0; j < 5; j++)
{
sum+=ch[i][j];
count=sum/5;
}
}
printf("%.2f\t",count);
sum=0;
return 0;
}
输入一个字符串‘a’和‘A’为‘*’‘b’和‘B’为‘#’其他的正常输出
#include <stdio.h>
int main(int argc, char const *argv[])
{
int ch[5][5]={{},
{},
{},
{},
{}};
int sum=0;
float count=0;
printf("语文\t数学\t英语\t物理\t化学\t平均分\n");
for (int i = 0; i < 5; i++)
{
printf("%d\t",i);
for (int j = 0; j < 5; j++)
{
sum+=ch[i][j];
count=sum/5;
}
}
printf("%.2f\t",count);
sum=0;
return 0;
}
字符串去空格
#include <stdio.h>
int main(int argc, char const *argv[])
{
char ch[100];
char str;
printf("请输入字符串:");
while ((str=getchar())!='\n')
{
if (ch[100]!=' ')
{
printf("%c",ch[100]);
}
else
{
continue;
}
}
str='\0';
printf("%c\n",ch[100]);
return 0;
}
数组交换位置
#include <stdio.h>
void ch(int *p, int *q)
{
int temp;
temp=*p;
*p=*q;
*q=temp;
}
int main(int argc, char const *argv[])
{
int a;
int b;
printf("请输入俩个数:");
scanf("%d%d",&a,&b);
ch(&a,&b);
printf("%d,%d",a,b);
return 0;
}
进行俩个数的加减乘除取余
#include <stdio.h>
typedef struct
{
double (*add)(double,double);
double (*sub)(double,double);
double (*mul)(double,double);
double (*div)(double,double);
double (*mod)(double,double);
}Calculator;
double add(double a,double b)
{
return a+b;
}
double sub(double a,double b)
{
return a-b;
}
double mul(double a,double b)
{
return a*b;
}
double div(double a, double b)
{
if (b != 0) {
return a / b;
} else {
printf("输入错误!\n");
return 0;
}
}
double mod(double a,double b)
{
return fmod(a,b);
}
int main(int argc, char const *argv[])
{
Calculator calc={add,sub,mul,div,mod};
double result;
int c;
int d;
printf("请输入俩个数:");
scanf("%d%d",&c,&d);
result = calc.add(c,d);
printf("和为:%.2lf\n",result);
result = calc.sub(c,d);
printf("差为:%.2lf\n",result);
result = calc.mul(c,d);
printf("积为:%.2lf\n",result);
result = calc.div(c,d);
printf("商为:%.2lf\n",result);
result = calc.mod(c,d);
printf("余为:%.2lf\n",result);
return 0;
}
学的东西越来越难了,函数也快上完了,不出意外c语言的学习要结束了,下周应该是做个项目到时候在和大家分享,我们下周六再见,加油