1. c語言中如何導入圖片
1、首先先在圖片取模軟體找到軟體快捷方式,點擊打開軟體。
2. 怎麼使用C語言完成圖片中要求的編程(盡量使用一維數組)
按照你的要求,都用一維數組。不過學生信息建議使用結構體來定義。
題目要求函數參數用到數組和指針,而數組傳參本來就可用數組和指針兩種方式。
下面是代碼:
#include <stdio.h>
#define MJ 5//課程最大數量
#define MT 30//學生最大人數
#define FM 100//滿分
#define PS 60//及格
int init(int ss[],int sid[],int *p_slen);//通過初始化數組。成功返回總分,失敗返回0
int contFStudents(int ss[],int sid[],int slen);//統計不及格人數並列印名單,返回人數
int contAAvg(int ss[],int sid[],int slen,float avg);//avg表示平均分數,如未知傳-1 返回人數
int contMax(int ss[],int slen,int *sid);//統計最高分及學號
int main()
{
int ss[MT],sid[MT],sum;
int slen=0;// 實際輸入的學生人數
int fn,an;
sum=init(ss,sid,&slen);
fn=contFStudents(ss,sid,slen);
an=contAAvg(ss,sid,slen,(sum*1.0)/slen);
printf("不及格佔比%.0f%% ",(fn*1.0)/slen*100);
printf("高於等於平均分佔比%.0f%% ",(an*1.0)/slen*100);
contMax(ss,slen,sid);
return 0;
}
int init(int ss[],int sid[],int *p_slen)
{
int i=0,n,sum=0;
if(!p_slen) return 0;
*p_slen=0;
printf("該班級所有學生某課程成績(人數不超過%d): ",MT);
for(i=0;i<MT;i++)sid[i]=1000+i;//學號沒有特殊要求,直接用數字代替
i=0;
while(*p_slen<=MT)
{
printf("請輸入學號%d的成績:",sid[i]),scanf("%d",&n);
if(n>FM)
{
printf("%d輸入無效,不能大於滿分上限%d ",n,FM);
continue;
}
if(n<0) break;
ss[i++]=n;
sum+=n;
}
*p_slen=i;
return sum;
}
int contFStudents(int ss[],int sid[],int slen)
{
int i,cnt=0;
for(i=0;i<slen;i++)
if(ss[i]<PS)cnt++,printf("學號%d,分數:%d,不及格! ",sid[i],ss[i]);
printf("不及格人數共:%d人 ",cnt);
return cnt;
}
int contAAvg(int ss[],int sid[],int slen,float avg)
{
int i,cnt=0,sum=0;
if(avg==-1)
{
for(i=0;i<slen;i++) sum+=ss[i];
avg=(sum*1.0)/slen;
}
for(i=0,printf("平均分(%f)及平均分以上的學生有: ",avg);i<slen;i++)
if(ss[i]>=avg)cnt++,printf("學號%d,分數:%d ",sid[i],ss[i]);
printf("平均分及平均分以上人數共:%d人 ",cnt);
return cnt;
}
int contMax(int ss[],int slen,int *sid)
{
int i,max=ss[0];
if(!sid) return 0;
for(i=0;i<slen;i++)
if(ss[i]>max) max=ss[i];
for(i=0,printf("最高分(%d)的學生學號有: ",max);i<slen;i++)
if(ss[i]==max) printf("%d ",sid[i]);
return 1;
}
3. 怎樣用c語言編寫一個輸出「蘋果圖案」的程序
#include<stdio.h>
intmain()
{
inti,j,k;
for(i=1;i<=4;i++)//先列印上邊的四行
{
for(j=1;j<=4-i;j++)//控制要列印的空格數量
printf("");
for(k=1;k<=2*i-1;k++)//控制要列印的星號數
printf("*");
printf(" ");
}
for(i=1;i<=3;i++)
{
for(j=1;j<=i;j++)//控制要列印的空格數
printf("");
for(k=1;k<=7-2*i;k++)//控制要列印的星號數
printf("*");
printf(" ");
}
return0;
}
4. C語言:圖片上的代碼段,輸出是多少,為什麼
圖中代碼整理如下圖:
那麼函數f就是克表示為f(x) = 3 + (x-1),其中x表示第幾次調用。
所以,當f調用兩次時,返回的值為4
5. 用C語言如何用遞歸方法畫出下圖圖形 只需提供思路不用具體代碼 急!謝謝
需要有一個畫直線的庫函數供使用。以下講思路。
定義點的類型為具有二維坐標,比如 struct point { double x; double y;} 之類。
定義多邊形的類型為元素是點的線性表,比如鏈表 struct polygon { struct point *p; struct polygon* next; },
需要能按順序訪問各個點,並需要提供insert函數以做插入點操作。
從等邊三角形開始,多邊形包含起始的三個點,三個點構成等邊三角形。
下面的思路是偽代碼
p = 起始點head;
do {
1.每個點p與下一個點p->next構成多邊形的一條邊,求邊長;
2.求出兩個三等分點q1和q2(求兩點構成的線段的距離並進一步求三等分點的方法寫成函數,公式不用說了吧);
3.按順序將q1和q2插入p和p->next之間;
4.以q1和q2為頂點求向外生長出的三角形的第三個頂點r(求r的坐標比較復雜一些,可以用公式,但我認為按q1q2與x軸的夾角分6種情況可以簡化計算);
5.將r插入q1和q2之間;
6.p = p->next;
} while (p != 起始點head);
// 每完整循環一次增長一輪,考慮一下要循環幾輪滿足需要,從圖看第二個圖是循環3輪。
下面p依次遍歷多邊形每個點畫線 drawline(p, p->next)
最後一個點與起始點head之間drawline(p, head)閉合圖形。
完畢。
6. c語言,怎麼顯示出圖片上面的代碼形式請說明具體步驟
1. 首先,編寫一段簡單的C語言程序,輸出百分號,程序代碼如下圖所示:
#include <stdio.h>
void main()
{
printf("輸出百分號:% ");
}
從上面的分析中,知道,如果要列印輸出一個百分號,只需要書寫兩個百分號就可以了。同理,如果要輸出兩個百分號,那麼書寫四個百分號就可以了,依此類推。
7. c語言。輸出圖形,簡單代碼怎麼寫
#include<stdio.h>
#include<stdlib.h>
char a[25][25],b[2];
int n;
void fill()
{ int i,j,k;
char *p=a[0];
for(k=0; k<(n+1)/2; k++)
{ for(i=0; i<n-2*k; i++)
{p=*(a+k)+k+i*25;
for(j=0; j<n-2*k; j++)
*p++=b[k%2];
}
}
}
int main()
{ int i,j;
scanf("%d %c %c",&n,&b[0],&b[1]);
fill();
for(i=0; i<n; i++)
{ for(j=0; j<n; j++)
printf("%c",a[i][j]);
printf(" ");
}
return 0;
}
8. C語言,我想做成下面那個圖怎麼做啊要代碼,發圖片也可以,我不懂怎麼用C來表達這個啊!謝謝 0
#include"stdio.h"
#defineN3
intmain(void){
charch[N][N],i,j;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
ch[i][j]=!i?j+'0':!j?i+'0':'D';
for(i=0;i<N;i++){
for(j=0;j<N;printf("%c",ch[i][j++]));
printf(" ");
}
return0;
}
9. 用c語言編程怎樣能夠編出圖片上的圖形
#include<stdio.h>
#include<stdlib.h>
#defineN9
#defineXH(N/2-abs(N/2-i)+1)
voidmain(){inti,j;
for(i=0;i<N;i++){
for(j=0;j<XH;j++)printf("*");
printf(" ");
}
}
10. 如何用c語言讀取圖片
#include
using namespace std;
#define Twoto1(i,j,w) i*w+j
void createimage(unsigned char *&img, int w, int h)
{img = new unsigned char[w*h];}
void delateimage(unsigned char*img)
{delete []img;}
void readimage(unsigned char*img, int w, int h, char *fname)
{
FILE *fp;
fopen_s(&fp,fname, "rb");
if (fp == NULL){ cout << "error" << endl; return; }
size_t result;
result=fread(img , sizeof(unsigned char), w*h, fp);
if (result != w*h)
{
cout << "Reading error" << endl;
return;
}
else
cout << "Reading Ok!" << endl;
fclose(fp);
}
void mobanjuanji(unsigned char image, unsigned char*image1, int w, int h, float moban[5][5])
{
for (int i = 0; i for (int j = 0; j if (iw - 3 || j>h - 3)
image1[Twoto1(i,j,w)] = 0;
else
{
float temp = 0;
for (int m = 0; m<5; m++)
for (int n = 0; n<5; n++)
{
temp += (image[Twoto1(i-2+m,j-2+n,w)] moban[m][n]);
}
if (temp>255) image1[Twoto1(i, j, w)] = 255;
else if (temp<0) image1[Twoto1(i, j, w)] = 0;
else image1[Twoto1(i, j, w)] = temp;
}
}
void saveimage(unsigned char *img, int w, int h, char *fname)
{
FILE *fp;
fopen_s(&fp, fname, "wb");
if (fp == NULL) { cout << "error" << endl; return; }
size_t result;
result = fwrite(img, sizeof(unsigned char), w*h, fp);
if (result != w*h)
{
cout << "Write error" << endl;
return;
}
else
cout << "Write Ok!" << endl;
fclose(fp);
}
void main()
{
unsigned char *img;
unsigned char *img1;
float moban[5][5] = { {0,0,0,0,0},{0, -1, 0, 1, 0 }, { 0, -2, 0, 2, 0 }, { 0, -1, 0, 1, 0 }, { 0,0,0,0,0 } };
//float moban[5][5] = { 0 };
int w = 512, h = 512;
createimage(img, w, h);
createimage(img1, w, h);
readimage(img, w, h, "E:ss.raw");
mobanjuanji(img, img1,w, h, moban);
saveimage(img, w, h, "E:ss_1.raw");
saveimage(img1, w, h, "E:ss_2.raw");
delateimage(img);
delateimage(img1);
}
(10)c語言代碼做圖片擴展閱讀
C語言實現一個圖片的讀出和寫入
#include <stdlib.h>
#include <windows.h>
int file_size(char* filename)//獲取文件名為filename的文件大小。
{
FILE *fp = fopen(filename, "rb");//打開文件。
int size;
if(fp == NULL) // 打開文件失敗
return -1;
fseek(fp, 0, SEEK_END);//定位文件指針到文件尾。
size=ftell(fp);//獲取文件指針偏移量,即文件大小。
fclose(fp);//關閉文件。
return size;
}
int main ()
{
int size=0;
size=file_size("qw");
printf("%d ",size);
FILE * pFile,*qw;
char *buffer=(char*)malloc(sizeof(char)*size);
qw =fopen("qw","r");
pFile = fopen ( "qwe" , "wb" );
printf("%d==
",pFile);
printf("%d ",size);
fread(buffer,1,size,qw);
fwrite (buffer , sizeof(byte), size , pFile );
fclose (pFile);
rename("qwe","Groot.jpg");
return 0;
}