当前位置:首页 » 编程语言 » c语言实验四

c语言实验四

发布时间: 2022-06-17 16:12:09

c语言结构体和共同体实验四,怎么解

/*第一张图太模糊了*/

#include<stdio.h>

struct st{

char name[20];

int num;

char work;

union sh{

float score;

char course[11];

}ps;

}s[6];

int main()

{

for(int i=1;i<5;i++)

{

scanf("%s%d %c",s[i].name,&s[i].num,&s[i].work);

if(s[i].work=='x')

scanf("%f",&s[i].ps.score);

else

scanf("%s",s[i].ps.course);

}

for(int i=1;i<5;i++)

{

printf("%-8s%-8d%-8c",s[i].name,s[i].num,s[i].work);

if(s[i].work=='x')

printf("%-8.1f",s[i].ps.score);

else

printf("%-8s",s[i].ps.course);

printf(" ");

}

return 0;

}

② C语言实验四 循环结构程序设计

不写代码了。给你点提示。。
①可以获取scanf的返回值来判定,使用do{}while();也挺方便。
②定义i控制循环次数,n定义素数数量,每当n%5=0时输出一个回车。具体求素数算lz会了吧。

③ c语言程序实验报告(实验4)

你的问题比较麻烦,但你给的又没有加分,大家不会费功夫的。

④ c语言程序设计实验四中的第三第五题

#include "stdio.h"
#include "Conio.h"
#include<stdlib.h>
int main(void)
{
int c;
while( (c=getchar()) !=EOF){
printf("%d",c);//////////////
if('a' <= c && c <= 'z')
putchar( c + 'A' - 'a');
else if (c == 10){
putchar('\n');
putchar('\n');
}
else{
putchar(c);
}
}
return 0;
}

运行结果
a
97A10
A
65A10

你输入a按下回车,先输出97,判断为小写然后转换为大写输出A,接着处理你输入的那个回车,所以每次你按下回车你的else if语句都会执行的,也就是说你输入一个字符并按下回车while循环了两次,一次是你的字符 第二次是你的回车

⑤ C语言实验

#include <stdio.h>

int main(int argc, char *argv[])
{
int m = 0,k = 0;
printf("input m and k:");
scanf("%d %d",&m,&k);

int a[100] = {0},i = 0;

while(1)
{
if(m < k)
{
break;
}

a[i] = m % k;
i++;
m = m / k;
}

if(m != 0)
{
a[i] = m;
}

while(i >= 0)
{
printf("%d",a[i]);
i--;
}
printf("\n");

return 0;
}

⑥ C语言实验报告总结

你只需要按那个模版就行,那些内容就改成你的作业
班级: 学号: 姓名:
实验9 指针

一、实验目的

(1)掌握指针概念,并定义与使用它。

(2)使用数组的指针和指向数组的指针变量。

(3)使用字符串的指针和指向字符串的指针变量。

二、实验内容

1. 将一个3*3的矩阵转置,用函数实现。

2. 有n个人围成一圈,顺序排号。从第一个人开始报数(1~3),凡报到3的人退出,问第几号的人能留下。

三、实验环境

硬件:(1)学生用微机

(2)多媒体实验教室

软件:(1)Windows XP 中文操作系统

(2)VC++ 6.0

四、实验结果

程序1:

#include<stdio.h>

void main()

{

void move(int *pointer);

int a[3][3],*p,i;

printf("input marix:\n");

for(i=0;i<3;i++)

scanf("%d %d %d",&a[i][0],&a[i][1],&a[i][2]);

p=&a[0][0];

move(p);

printf("matrix:\n");

for(i=0;i<3;i++)

printf("%d %d %d\n",a[i][0],a[i][1],a[i][2]);

}

void move(int *pointer)

{

int i,j,t;

for(i=0;i<3;i++)

for(j=i;j<3;j++)

{

t=*(pointer+3*i+j);

*(pointer+3*i+j)=*(pointer+3*j+i);

*(pointer+3*j+i)=t;

}

}

程序2:

#include<stdio.h>

void main()

{

int i,k,m,n,num[50],*p;

printf("input num of person:");

scanf("%d",&n);

p=num;

for(i=0;i<n;i++)

*(p+i)=i+1;

i=0;

k=0;

m=0;

while(m<n-1)

{

if(*(p+i)!=0)k++;

if(k==3)

{

*(p+i)=0;

k=0;

m++;

}

i++;

if(i==n)i=0;

}

while(*p==0)p++;

printf("the last num is %d\n",*p);

}

结果1:(就是程序运行之后出现的框,截图后粘贴这里)

结果2:

五、总结:

通过这个实验的学习, 基本掌握了指针的基本用法。

⑦ c语言实验 急!

#include<stdio.h>
int main(void){
int a;
scanf("%d",&a);
a+=a*=a%=4;
printf("%d",a);
}

⑧ 求一份答案 C语言编程:实验四 数组

7. 编写程序打印出如下杨辉三角形。
解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:
#include<stdio.h>
#define N 10

void main()
{
int s[N][N];
for(int i=0;i<N;i++)
{
S[i][0]=s[i][i]=1;
}
for(i=2;i<N;i++)
for(int j=1;j<I;j++)
s[i][j]=s[i-1][j-1]+s[i-1][j];
for(i=0;i<N;i++)
{ for(int j=0;j<=i;j++)
printf(“\t%d”,s[i][j]);
printf(“\n”);
}
}

8. 分析下列程序,查错并修改。
#include <stdio.h>
#include <string.h>
void main()
{ char a[10],b[10];
int c,d,k; char ch;
scanf("%s",&a);---à scanf("%s",a);
scanf("%s",&b); --à scanf("%s",b);
printf("a=%s,b=%s\n",a,b);
c=strlen(a);
d=strlen(b);
if(c>d)
for(k=0;k<d;k++)
{ch=a[k];a[k]=b[k];b[k]=ch;}
printf("a=%s\n",a);
printf("b=%s\n",b);
}
解答:(1) 源程序代码:(2)运行结果截图:(3)运行结果分析:
9.预习下面的程序的功能,写出预习结果。并上机验证。
#include <stdio.h>
#include <string.h>
void main( )
{ char s1[80], s2[40];
int i = 0, j = 0;
printf(" \n Please inputstring1:");
scanf("%s", s1);
printf(" \n Please inputstring2:");
scanf("%s", s2);
while (s1[i]!= '\0' )
i++;
while (s2[j]!= '\0' )
s1[i++]=s2[j ++];
s1[i]= '\0';
printf("\n New string: %s",s1);
}
解答:(1)运行结果截图:(2)运行结果分析:
S2附加到S1的最后

10. 补充以下程序,使其功能是对从键盘上输入的两个字符串进行比较,然后输出两个字符串中第一个不相同字符的ASCII码之差。例如:输入的两个字符串分别为abcdefg和abceef,则输出为-1。程序如下:
#include <stdio.h>
void main ( )
{ char str1[100],str2[100];
int i,s;
printf("\n Input string1:\n");gets(str1);
printf(“\n Input string2:\n”);gets(str2);
i= 0 (1) ;
while((str1[i]==str2[i])&&(str1[i]!= ‘\0’ (2) ))
i++;
s= str1[i]=str2[i] (3) ;
printf("%d\n",s);
}
解答:(1) 源程序代码:(2)运行结果截图:(3)运行结果分析:
11. 补充以下程序,功能是统计从终端输入字符串中每个大写字母的个数。用#号作为输入结束标志。
#include <stdio.h>
#include <ctype.h>
void main ( )
{ int num[26],i; char c;
for (i=0;i<26;i++)num[i]=0;
while ( (c=getchar())(1) != '#') /* 统计从终端输入的大写字母个数*/
if (isupper(c))num[c-65]++ (2) ;
for (i=0;i<26;i++) /* 输出大写字母和该字母的个数*/
if (num[i])printf("%c:%d\n",i+65 (3) ,num[i]);
}
解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:
12.编写程序,功能是输入若干个字符串,求出每个字符串的长度,并打印最长的字符串的内容。以“stop”作为输入的最后一个字符串。
解答:(1)源程序代码:(2)运行结果截图:(3)运行结果分析:
13.编写程序,输入字符串s1和s2以及插入位置f,在字符串s1中的指定位置f处插入字符串s2。如:输入"BEIJING"、"123"和位置3,则输出:"BEI123JING"。解答: (1)源程序代码:(2)运行结果截图:(3)运行结果分析:

⑨ C语言实验报告

我写了个,不知道行不,有什么不妥的请指出哈,如要格式请加我,将之发给你
四 川 大 学 计 算 机 学 院、软 件 学 院
实 验 报 告
学号: 姓名: 专业:计算机科学与技术 班级:5 第 13 周
课程名称 c/C++ 实验课时 2
实验项目 字符串的复制与追加 实验时间 08.5. 16
实验目的 1.掌握字符串的基本操作和理解数据结构

实验环境 VC 6.0
实验内容(算法、程序、步骤和方法) 先计算出S1和S2的字符个数,为S3分配好空间,利用已有库函数先将S1复制到S3中,再将S2追加到S3中,当显示完后要记住收回空间,做好善后处理。
源代码如下:
#include<iostream>
#include<string.h>
using namespace std;
int main()
{
char *s1="abcdef";
char *s2="123456f";
int n=strlen(s1)+strlen(s2);//计算s1,和s2的总长度n
char *s3=new char[n+1]; //定义S3并分配空间大小为n
strcpy(s3,s1); //将s1复制到s3中
strcat(s3,s2); //将s2追加到s3后面
cout<<"s3="<<s3<<endl;
delete []s3; //收回空间
s3=NULL; //将指针指向空
return 0;
}

(接上)
实验内容(算法、程序、步骤和方法)

结构是顺序存储结构,算法顺序链接法
数据记录
和计算 数据有:字符串S1 ,S2;和一未知字符串S3
只需计算前两个字符串长度之和

结 论
(结 果) 利用字符数组可以顺序存储字符数据,并且能够顺序处理数据;
算法复杂度O(n+m);处于中性
小 结 字符数组能够带来很好的存储结构,便于操作,但是算法不是很好,只能顺序遍历数组,故复杂度不是很小
指导老师评 议

成绩评定: 指导教师签名:

⑩ C语言实验04

[4]_1(30001)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, n;
double sum;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
sum=0;
for(i=1;i<=n;i++)
sum=sum+1.0f/i;
printf("%.3f\n", sum);
}
}

[4]_2(30002)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, n, temp;
float sum;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
sum=0.0;
for(i=0;i<n;i++)
{ temp=2*i+1;
sum=sum+1.0f/temp;
}
printf("%.3f\n", sum);
}
}

[4]_3(30003)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, n, flag;
float sum;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
sum=0.0;flag=1;
for(i=1;i<=n;i++)
{ sum=sum+flag*1.0f/i;
flag=-flag;
}
printf("%.3f\n", sum);
}
}

[4]_4(30004)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, flag, n, t;
double item, sum;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
sum=0; flag=1;
t=1; item=1.0;
for(i=1;i<=n;i++)
{ sum=sum+flag*item;
t=t+3;
item=1.0/t;
flag=-flag;
}
printf("%.3f\n", sum);
}
}

[4]_5(30005)

#include <stdio.h>
void main( )
{
int ri, repeat;
int begin, c, end, f;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d%d", &begin, &end);
printf("Celsius Fahrenheit\n");
for(c=begin;c<=end;c++)
{ f=32 + c * 9 / 5;
printf("%d%10d\n", c, f);
}
}
}

[4]_6(30006)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, n;
double fact;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%d", &n);
fact=1.0f;
for(i=2;i<=n;i++)
fact=fact*i;
printf("%.0f\n", fact);
}
}

[4]_7(30007)

#include <stdio.h>
void main( )
{
int ri, repeat;
int i, n;
double x, mypow;

scanf("%d", &repeat);
for(ri=1; ri<=repeat; ri++){
scanf("%lf%d", &x, &n);
mypow=1.0;
for(i=1;i<=n;i++)
mypow=mypow*x;
printf("%.2f\n", mypow);
}
}

热点内容
安卓系统网络播放器哪个好 发布:2025-02-06 20:42:02 浏览:814
头条缓存的视频格式 发布:2025-02-06 20:32:18 浏览:113
ftp不显示文件夹 发布:2025-02-06 20:30:37 浏览:123
苹果手机解压怎么打开 发布:2025-02-06 20:29:35 浏览:473
单片机程序存储器 发布:2025-02-06 20:29:31 浏览:206
串的c语言 发布:2025-02-06 20:25:44 浏览:745
编程函数总结 发布:2025-02-06 20:09:11 浏览:316
编程obj 发布:2025-02-06 19:59:52 浏览:844
津贴脚本 发布:2025-02-06 19:44:10 浏览:741
好分数里如何修改密码 发布:2025-02-06 19:42:30 浏览:157