當前位置:首頁 » 編程語言 » 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);
}
}

熱點內容
原神遊戲伺服器ip 發布:2025-02-06 17:54:23 瀏覽:810
如何查筆記本電腦的真正配置 發布:2025-02-06 17:48:07 瀏覽:81
存儲器存在地址 發布:2025-02-06 17:47:28 瀏覽:539
phpsocket教程 發布:2025-02-06 17:42:13 瀏覽:423
mysql解壓縮版安裝 發布:2025-02-06 17:26:33 瀏覽:179
phpgd圖片 發布:2025-02-06 17:24:34 瀏覽:206
php代碼整理 發布:2025-02-06 17:24:31 瀏覽:477
java可執行文件 發布:2025-02-06 17:18:59 瀏覽:249
衛士相當於現在什麼配置 發布:2025-02-06 17:05:04 瀏覽:409
項目編譯慢 發布:2025-02-06 16:53:48 瀏覽:382